VBA、Word和数据库的联合编程.docx
《VBA、Word和数据库的联合编程.docx》由会员分享,可在线阅读,更多相关《VBA、Word和数据库的联合编程.docx(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VBA、Word和数据库的联合编程 在实际工作中,经常须要将数据库中的数据放在Word文挡中。例如学校每期都要将学生的成果填入到通知书中寄发给学生(家庭)。传统的实现方法是在Word手工输入或用数据库软件编写一个特地的程序(模块)来完成此项工作。本文采纳VBA作为开发语言,用宏吩咐的方法实现了Access数据库或foxpro数据库中的数据在Word中的自动成批替换。先在Word中建立一个名为通知书.dot的模板,将通知书中固定的文字内容输入到该模板中,将变动的文字内容(取数据库中的字段值)设置成书签(右图中的name、math等)。为了编程便利,书签名可取数据库表中相应的字段名。完成后存入Of
2、fice的Templates(模板)书目下。要实现VBA与数据库MicrosoftAccess97的连接,在Word中选主菜单工具宏宏名打开VisualBasic编辑器;选VBA主菜单条上工具菜单项下的引用吩咐,激活引用对话框,从可运用的引用列表中选择MicrosoftDAO2.5/3.5CompatibilityLibray一项,然后单击确定按钮,把它引用到工程中来。接下来在模板中编写出一条宏吩咐,干脆在Word中用程序代码实现对数据库的读取。对Access数据库,用语句Setmd=DBEngine.OpenDatabase(成果库.mdb)打开名为成果库.mdb的数据库,用语句Setrs=
3、md.OpenRecordset("学生成果表",dbOpenTable)打开数据库中的表名为"学生成果表"的记录集,本吩咐只对记录集进行查询,为了提高查询速度,选择了快照dbOpenSnapShot类型的记录。对于foxpro的dbf数据库,用语句Setmd=OpenDatabase("d:grade学生成果表",False,False,"foxpro2.5")打开名为成果库.dbf的数据库,用语句Setrs=md.OpenRecordset("学生成果表")的记录集。因为数据库中一条记录对应一个学生,每个学生都要打印一份通知书,都要用通知书的内容(包括书签),要将模板中的通知书全部内容复制到一个新建的临时文档中,处理完一条记录后,把通知书内容从新建的临时文挡中复制过来供下一条记录运用。对于每个通知书(对应一条记录),用循环将数据表中的字段名用数组的形式保存,再依据通知书中的书签名与保存的字段名比较,假如存在则用语句mydoc1.Bookmarks(i).Select选择的书签名,用数据表中相应的字段值(rs.Fields(字段名)来替代文档中的所选择的书签名。右图为运行宏吩咐后的一个通知书。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA Word 数据库 联合 编程
限制150内