VBA、Word和数据库的联合编程

在实际工作中,常常需要将数据库中的数据放在Word文挡中。例如学校每期都要将学生的成绩填入到通知书中寄发给学生(家庭)。传统的实现方法是在Word手工输入或用数据库软件编写一个专门的程序(模块)来完成此项工作。本文采用VBA作为开发语言,用宏命令的方法实现了Access数据库或foxpro数据库中的数据在Word中的自动成批替换。

先在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(字段名))来替代文档中的所选择的书签名。右图为运行宏命令后的一个通知书。

感谢您访问:生涯设计公益网!本文永久链接:https://www.16175.com/626405.html。侵删或不良信息举报请联系邮箱:121488412@qq.com或微信:aban618。
(0)

相关推荐

  • 2017年平安寒假安全教育专项活动方案

      篇一:【安全平台“2017年平安寒假安全教育”专项活动方案】   一、活动主题   本次活动以“强化安全意识,提高避险能力”为主…

    实用范文 2022年9月18日
    27
  • 舞蹈比赛策划书范本

      舞蹈是一种表演艺术,使用身体来完成各种优雅或高难度的动作,一般有音乐伴奏,以有节奏的动作为主要表现手段的艺术形式。它一般借助音乐,也借助其他的道具。现在,就来看看以下三篇关于舞…

    实用范文 2022年9月12日
    27
  • 2021年最新高中团支书工作总结范文4篇

    高中团支书是班级向心力的塑造人,是教师的助手,是连接师生关系的桥梁,是同学的朋友,同时又是一个普通的学生。下面是范文吧小编给大家整理收集的高中团支书工作总结范文,希望对大家有帮助。…

    实用范文 2022年10月31日
    33
  • 教师党员个人工作计划

    机构是一个包括教育,科研,文化,卫生等部门,包括经营业绩和工作职责系统单元之间的巨大差异,以及知识分子相对集中,相对比较成熟的人才。这就决定了党的组织工作的机构都有自己鲜明的特色,…

    实用范文 2022年9月25日
    24
  • 2016调味品工作计划

    生产车间的年度工作目标是需要根据公司的年度工作计划进行分解的。 例如: 一、不断加强安全管理工作 一是坚持开展安全培训工作。将安全用电、各工种及设备的操作规程和应急抢救知识作为培训…

    实用范文 2022年9月22日
    21
  • 商品采购协议

    商品采购协议 商品采购协议1   商品采购协议   编号:no.__   甲方:宁波鑫宝有限公司(采购方)   (附营业执照加章复印件)   乙方:_______________(…

    实用范文 2022年8月22日
    30
分享本页
返回顶部