本文介绍了Word域与数据库结合的方法,给用户提供一个插入Word域的界面,并把数据库的数据填充到Word文件中。
域是Word中最具有实用价值的功能之一,它表示文档中可能发生变化的数据或邮件合并文档中套用信函、标签中的占位符。Microsoft Word 可以在您使用一些特定命令时插入域,如"插入"菜单上的"日期和时间"命令。您也可使用"插入"菜单上的"域"命令手动插入域。事实上,我们在日常工作中常会脱离Microsoft Word的操作环境。一般,用户是先建立好一些Word文件模板,然后利用所提供的应用程序功能向Word文件模板中插入域,用该域对应的值取代域值,这样就达到了向Microsoft Word文件中插入数据的作用。我们常把数据放入数据库中,数据库的内容不断地变化,我们的域值也跟着不断地变化,取到灵活自动更新的作用,要达到这方面的功能,就应该把数据库与Word域结合起来。
首先要解决这一问题,我们必须先了解Word域有关的知识:Word域代码位于花括号或大括号 ( { } )中,域类似于 Microsoft Excel 中的公式:域代码类似于公式,域结果(域结果:当 Microsoft Word 执行域指令时,在文档中插入的文字或图形。在打印文档或隐藏域代码时,将以域结果替换域代码。)类似于公式产生的值。可在文档中切换显示域代码及其结果。正好,数据库的字段名对应域代码,字段值对应域值。我们利用VBA编程可以达到目的。VBA for Word 中有关域的类型很多,其中Type:=wdFieldAddin是一种关于字段与字段值对应的特殊域,正是借助它的功能解决问题。我们可以这么设想,用户先打开Word文件,然后向打开的Word文件中插入域,然后用数据库的数据填充。插入域时有二种可能,一种是单值域,即一个域代码对应一个域值(一对一关系),这种情况的域可以插入任何地方;另一种情况是多值域,即一个域代码对应多个域值(一对多关系)。这种情况的域只能插入表格中,并且当表格的行数比域值少时,要能自动提供增加表格行的功能。
利用Visual Basic。Net编写通用的类,给用户提供可视化的编辑界面,用于用户在Word文件中插入域标志。针对Word文件或Excel表格文件,扫描整个文件,将其中的域标志取出来,然后通过从数据库中取出字段所对应的值,将值填写到文件中域对应的位置。若对应位置已有值,则判断该值与要填写的值是否相同,若不同则替换之。插入值分为:
A。单纯的值,直接使用一个值替换域。
B。表格中的单元格。若该表格填写不下,是否增加表格单元?以及与该单元关联的域等。
例如,有二个Access数据库的表(:表1对应单值域,表2对应多值域)如下:
| 工程名称 | 设计阶段 | 工程检索号 | 项目名称 | 新制 | 字数 | 图片数 | |
| 建模工具 | 学习(2) | http://www.21cmm.com | fw-jm-2002 | 软件工程专家网 | 60 | 1000 | 3 |
| 序号 | 校核主要问题 | 执行情况 |
| 1 | 排列不齐 | No |
| 2 | 文字错 | Yes |
| 3 | 文字错 | Yes |
| 4 | 内容提要不详细 | No |
| 5 | 文字错 | Yes |
| 6 | 数据有误 | No |
利用VBA编写的一个通用的处理Word域的程序。开发步骤如下 :
1.建立项目,向项目中增加处理Word域的类
启动Visual Studio。NET。在新建项目中选择Visual Basic项目,在模板中选择Windows应用程序,把工程名更改为WordDoc。
● 向工程中增加名称为CWordDoc的类。
● 定义的CWordDoc类的属性。代码如下:
|
● 定义的CWordDoc类的方法。
定义打开Word文件的方法。建立Word应用对象和文档对象,并打开Word文件。设定Word已经运行。VBA编程主要是先建立某一个应用程序的对象,然后按需要处理应用对象。Word应用对象是“Word.Application”,通过CreateObject方法建立之。代码如下:
保存Word文件。 代码如下:
定义Word环境的大小。
Word启动后一般是全屏幕(最大化),要把用户操作界面显示出来,不被Word遮蔽,处理的方法是把用户界面设为顶层窗体,也可使用户界面与Word各自处在自己位置,平行布置。这里是让用户界面位于屏幕的最顶上,Word位于
上一篇:简单站内HTML文件搜索程序
下一篇:用PHP画一个可以更换文字的按纽
共有 0 位网友发表了评论,平均得分: 0 查看完整内容