首页 > 公文写作 > 法律文书 / 正文
数据库VBA【VBA、Word和数据库的联合编程】
2019-12-01 07:38:37 ℃在实际工作中,常常需要将数据库中的数据放在Word文挡中。例如学校每期都要将学生的成绩填入到通知书中寄发给学生(家庭)。传统的实现方法是在Word手工输入或用数据库软件编写一个专门的程序(模块)来完成此项工作。本文采用VBA作为开发语言,用宏命令的方法实现了Access数据库或foxpro数据库中的数据在Word中的自动成批替换。
先在Word中建立一个名为通知书.dot的模板,将通知书中固定的文字内容输入到该模板中,将变动的文字内容(取数据库中的字段值)设置成书签(右图中的name、math等)。为了编程方便,书签名可取数据库表中相应的字段名。完成后存入Office的Templates(模板)目录下。
要实现VBA与数据库MicrosoftAccess97的连接,在Word中选主菜单工具宏宏名打开VisualBasic编辑器;选VBA主菜单条上[工具]菜单项下的[引用]命令,激活[引用]对话框,从可使用的引用列表中选择MicrosoftDAO2.5/3.5CompatibilityLipay一项,然后单击[确定]按钮,把它引用到工程中来。
接下来在模板中编写出一条宏命令,直接在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(字段名))来替代文档中的所选择的书签名。右图为运行宏命令后的一个通知书。
- 上一篇:政府采购的经济学透视_什么是政府采购
- 下一篇:基于信息技术的研究性学习_
猜你喜欢
- 2023-06-19 法律文书试题及答案(完整文档)
- 2023-06-18 2023年法律文书写作例文
- 2023-06-17 2023年电大法律文书
- 2023-05-10 欧盟英特尔反垄断案的法律谜题
- 2023-05-08 法律关于“家事”的那些规定
- 2023-03-22 法律小知识小常识,菁选五篇(范文推荐)
- 2023-03-21 2023年经典法律格言,菁选3篇【精选推荐】
- 2023-03-21 2023法律在我身边,菁选3篇
- 2023-02-23 2023年度法律专业信9篇(精选文档)
- 2023-02-03 梁柏台:苏区红色法律专家
- 搜索
-
- 上级党组织对任期届满党支部一般提前 09-22
- 乡镇人大代表选举及乡镇人代会流程 04-07
- 关于“学党史、颂党恩、跟党走”演讲比 09-11
- 2020年党支部工作意见和建议 07-10
- 派出所综合指挥室值职能情况 03-10
- 劳务派遣劳资员个人工作总结 07-23
- 派出所各项制度 11-11
- 加强党的建设,全面从严治党”专题研讨 06-10
- 关于机关档案文件材料保管期限的规定 06-08
- 中小学生班主任基本功大赛笔试试卷及参 05-17
- 11-25国庆70周年庆典晚会 庆典晚会串词
- 11-25办公室礼仪的十大原则 浅谈办公室的电话礼仪
- 01-17用心灵轻轻地歌唱_心灵的歌唱
- 01-17也许你不是我一生的唯一|也许不是我
- 01-17爱了,请珍惜;不爱,趁早放手|爱就珍惜不爱就放手
- 01-17岁月带走的是记忆,但回忆会越来越清晰|有趣又有深意的句子
- 01-17曾经的美好只是曾经,我只想珍惜身边的人|我只想珍惜你
- 01-18从容不惊 [学会笑眼去看世界,不惊不乍,淡定从容]
- 02-03当代大学生学习态度调查报告
- 02-03常用护患英语会话
- 标签列表