




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VBA、Word和数据库的联合编程VBA、Word和数据库的联合编程摘要 本文介绍了用VBA作为开发语言,用Access或foxpro作为数据库,用word中的书签作为媒介,实现数据库在Word中的自动替换方法,并以通知书为例给出了源程序。 关键词 VBAWord数据库bookmark(书签)在实际工作中,常常需要将数据库中的数据放在Word文挡中。例如学校每期都要将学生的成绩填入到通知书中寄发给学生(家庭)。传统的实现方法是在Word手工输入或用数据库软件编写一个专门的程序(模块)来完成此项工作。本文采用VBA作为开发语言,用宏命令的方法实现了Access数据库或foxpro数据库中的数据在Word中的自动成批替换。1实现方法 先在Word中建立一个名为“通知书.dot”的模板,将通知书中固定的文字内容输入到该模板中,将变动的文字内容(取数据库中的字段值)设置成书签(右图中的name、math等)。为了编程方便,书签名可取数据库表中相应的字段名。完成后存入Office的Templates(模板)目录下。 要实现VBA与数据库MicrosoftAccess97的连接,在Word中选主菜单”工具宏宏名”打开VisualBasic编辑器;选VBA主菜单条上工具菜单项下的引用命令,激活引用对话框,从可使用的引用列表中选择MicrosoftDAO2.5/3.5CompatibilityLibray一项,然后单击确定按钮,把它引用到工程中来。 接下来在模板中编写出一条宏命令,直接在Word中用程序代码实现对数据库的读取。对Access数据库,用语句Setmd=DBEngine.OpenDatabase(“成绩库.mdb”)打开名为“成绩库.mdb”的数据库,用语句Setrs=md.OpenRecordset(学生成绩表,dbOpenTable)打开数据库中的表名为学生成绩表的记录集,本命令只对记录集进行查询,为了提高查询速度,选择了快照dbOpenSnapShot类型的记录。对于foxpro的dbf数据库,用语句Setmd=OpenDatabase(d:grade学生成绩表,False,False,foxpro2.5)打开名为“成绩库.dbf”的数据库,用语句Setrs=md.OpenRecordset(学生成绩表)的记录集。因为数据库中一条记录对应一个学生,每个学生都要打印一份通知书,都要用通知书的内容(包括书签),要将模板中的通知书全部内容复制到一个新建的临时文档中,处理完一条记录后,把通知书内容从新建的临时文挡中复制过来供下一条记录使用。对于每个通知书(对应一条记录),用循环将数据表中的字段名用数组的形式保存,再根据通知书中的书签名与保存的字段名比较,如果存在则用语句 mydoc1.Bookmarks(i).Select选择的书签名,用数据表中相应的字段值(rs.Fields(字段名)来替代文档中的所选择的书签名。右图为运行宏命令后的一个通知书。2 源程序清单从数据题中读取数据的宏,在Word97(2000)上调试运行开发者:湖南工程学院陈华光Substart() Dimi,j,k,m,nrecord,txtnumber AsInteger Dimaname(1To20)AsString Setmd=DBEngine.OpenDatabase(D:grade成绩库.mdb) Setrs=md.OpenRecordset(学生成绩表,dbOpenTable) Setmydoc1=ActiveDocument txtnumber=mydoc1.Characters.Count Setrange1=mydoc1.Range(start:=0,End:=txtnumber) range1.Copy mydoc2=Documents.Add Selection.Paste Setrange2=mydoc2.Range(start:=0,End:=txtnumber) mydoc1.Activate OnErrorResumeNext rs.MoveLast nrecord=rs.RecordCount OnErrorGoTodoerror Fork=1To20 aname(k)=rs.Fields(k).name Nextkdoerror: Form=1Tonrecord Ifm=1Thenrs.MoveFirstElsers.MoveNext Fork=1To5VBA、Word和数据库的联合编程(2) totalnumber=mydoc1.Bookmarks.Count已存在的书签数 Fori=totalnumberTo1Step-1 bname=rs.Fields(aname(k) IfUCase$(mydoc1.Bookmarks(i).name)=UCase$(aname(k)Then mydoc1.Bookmarks(i).Select Selection.TypeTextText:=bname EndIf Nexti Nextk Selection.MoveDownUnit:=wdLine,Count:=4 IfmnrecordThen mydoc2.Activate ra
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第2章 信息工具-计算机 第1节 神奇的计算机 说课稿 2023-2024学年河大版(2023)初中信息技术第一册
- 11.4机械能及其转化(说课稿)2024-2025学年人教版物理八年级下册
- 2025年太阳能光伏产业链供应链信息化建设报告
- 2025年咖啡连锁市场布局报告:品牌扩张战略与品牌战略协同效应评估方法
- 2024秋四年级语文上册 第四单元 第15课 女娲补天说课稿 新人教版
- 自建房的施工方案
- 3.8 天气预报是怎样制作出来的(教学设计+任务单+课后练习)三年级上册科学 教科版 (3份打包)
- Unit 5 Topic 2 Section B 教学设计 -仁爱科普版英语八年级下册
- 第三单元第二课 《电脑的网络设置》-教学设计 新世纪版(2018)初中信息技术七年级上册
- 新能源行业2025绿色发展报告:技术创新与环保使命
- 研学旅行设计学习情境三研之有方研学设计06课件
- DL∕T817-2024立式水轮发电机检修技术规程
- 智能船舶的发展现状及趋势
- 金融科技驱动的支付行业数字化转型路径-洞察阐释
- 个人借款分期还款协议范本8篇
- 劳动争议再审申请书
- 朝花夕拾中父亲的病
- 2024年微信小程序建设协议样本
- 江苏省南京市联合体2024~2025学年上学期八年级物理期中试卷(含答案)
- 部编版四年级语文上册第六单元教学分析及全部备课教案(共6份教案)
- 项目安全管理考核表
评论
0/150
提交评论