论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
VBA、Word和数据库的联合编程(1)

摘要 本文介绍了用VBA作为开发语言,用Aess或fxpr作为数据库, 用rd中的书签作为媒介,实现数据库在rd中的自动替换方法,并以通知书为例给出了源程序。

关键词 VBA rd 数据库 bkark(书签)

在实际工作中,常常需要将数据库中的数据放在rd文挡中。例如学校每期都要将学生的成绩填入到通知书中寄发给学生(家庭)。传统的实现方法是在rd手工输入或用数据库软件编写一个专门的程序(模块)来完成此项工作。本文采用VBA作为开发语言,用宏命令的方法实现了Aess数据库或fxpr数据库中的数据在rd中的自动成批替换。
1 实现方法
先在rd中建立一个名为“通知书.dt”的模板,将通知书中固定的文字内容输入到该模板中, 将变动的文字内容(取数据库中的字段值)设置成书签(右图中的nae、ath等)。为了编程方便,书签名可取数据库表中相应的字段名。完成后存入ffie的Teplates(模板)目录下。
要实现VBA与数据库irsft Aess 97的连接,在rd中选主菜单 ”工具宏宏名”打开Visual Basi编辑器;选VBA主菜单条上[工具]菜单项下的[引用]命令,激活[引用]对话框,从可使用的引用列表中选择irsft DA 2.5/3.5 patibility Libray一项,然后单击[确定]按钮,把它引用到工程中来。
接下来在模板中编写出一条宏命令,直接在rd中用程序代码实现对数据库的读取。对Aess数据库,用语句Set d = DBEngine. penDatabase (“成绩库.db”)打开名为“成绩库.db”的数据库,用语句 Set rs = d. penRerdset("学生成绩表", dbpenTable) 打开数据库中的表名为"学生成绩表"的记录集,本命令只对记录集进行查询,为了提高查询速度,选择了快照dbpenSnapSht类型的记录。对于fxpr的dbf数据库,用语句 Set d = penDatabase("d:grade学生成绩表", False, False, "fxpr 2.5")打开名为“成绩库.dbf”的数据库,用语句Set rs = d.penRerdset("学生成绩表")的记录集。因为数据库中一条记录对应一个学生,每个学生都要打印一份通知书,都要用通知书的内容(包括书签),要将模板中的通知书全部内容复制到一个新建的临时文档中,处理完一条记录后,把通知书内容从新建的临时文挡中复制过来供下一条记录使用。对于每个通知书(对应一条记录),用循环将数据表中的字段名用数组的形式保存,再根据通知书中的书签名与保存的字段名比较,如果存在则用语句 yd1.Bkarks(i).Selet选择的书签名, 用数据表中相应的字段值(rs.Fields(字段名))来替代文档中的所选择的书签名。右图为运行宏命令后的一个通知书。
2 源程序清单
‘从数据题中读取数据的宏,在rd97(2000)上调试运行
‘开发者:湖南工程学院 陈华光
Sub start()
Di i, j, k, , nrerd , txtnuber As Integer
Di anae(1 T 20) As String
Set d = DBEngine.penDatabase("D:grade成绩库.db")
Set rs = d.penRerdset("学生成绩表", dbpenTable)
Set yd1 = AtiveDuent
txtnuber = yd1.haraters.unt
Set range1 = yd1.Range (start:=0, End:=txtnuber)
range1.py
yd2 = Duents.Add
Seletin.Paste
Set range2 = yd2.Range(start:=0, End:=txtnuber)
yd1.Ativate
n Errr Resue Next
rs.veLast
nrerd = rs.Rerdunt
n Errr GT derrr
Fr k = 1 T 20
anae(k) = rs.Fields(k).nae
Next k
derrr:
Fr = 1 T nrerd
If = 1 Then rs.veFirst Else rs.veNext
Fr k = 1 T 5转贴于论文联盟 .ll. ttalnuber = yd1.Bkarks.unt '已存在的书签数
Fr i = ttalnuber T 1 Step -1
bnae = rs.Fields(anae(k))
If Uase$(yd1.Bkarks(i).nae) = Uase$(anae(k)) Then
yd1.Bkarks(i).Selet
Seletin.TypeText Text:=bnae
End If
Next i
Next k
Seletin.veDn Unit:=dLine, unt:=4

未完...点击下方链接下载完整文档

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

摘要 本文介绍了用VBA作为开发语言,用Aess或fxpr作为数据库, 用rd中的书签作为媒介,实现数据库在rd中的自动替换方法,并以通知书为例给出了源程序。 关键词 VBA rd 数据库 bkark(书签) 在实际工作中,常常需要将数据库中的数据放在rd文挡中。例如学校每期都
  • 上一篇:IP溯源技术研究(1)
  • 下一篇:组件机制与操作系统的实现(1)
  • 基于人工智能的银行信贷风险决策
    面向对象数据库理论设想
    刍议防火墙的合理使用(1)
    浅谈Intranet在现代企业中的应用
    基于GP算法的知识发现系统
    浅谈对程序开发中异常的理解和认
    浅谈行为引导教学方法在《计算机
    大芯数OPGW在浙江电网的应用
    光纤光缆和通信电缆技术发展与思
    企业电子商务系统的规划与设计研
    研究生阶段计算机网络理论课程教
    有关计算机软件数据接口的应用研
    青年教师在医学微生物学留学生教
    电子政务人员培训的问题与建议(1
    渐开线圆柱齿轮几何参数计算的计
    专业出版社数据库人工智能改造
    非Access数据库在VB中的编程及
    穷举破解EXCEL、WORD文档密码(
    Word试题库工具插件的设计
    基于ASP.NET技术中数据
    主机DB2数据库课程的教学改
    计算机弱点数据库综述与评价
    数据库原理网上授课平台(一)
    关于数据库在仓库管理中的设计
    入侵检测技术在数据库系统的应
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

    Copyright 2006-2020 © 论文天下 All rights reserved 本站所有内容均由SPider自动索引,如有侵权请联系QQ:2486851删除