好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

国开电大作业范文-VBA、Word和数据库的联合编程.doc

4页
  • 卖家[上传人]:追***
  • 文档编号:267579106
  • 上传时间:2022-03-18
  • 文档格式:DOC
  • 文档大小:30.50KB
  • / 4 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    •   摘要 本文介绍了用VBA作为开发语言,用Access或foxpro作为数据库, 用word中的书签作为媒介,实现数据库在Word中的自动替换方法,并以通知书为例给出了源程序  关键词 VBA Word 数据库 bookmark(书签)  在实际工作中,常常需要将数据库中的数据放在Word文挡中例如学校每期都要将学生的成绩填入到通知书中寄发给学生(家庭)传统的实现方法是在Word手工输入或用数据库软件编写一个专门的程序(模块)来完成此项工作本文采用VBA作为开发语言,用宏命令的方法实现了Access数据库或foxpro数据库中的数据在Word中的自动成批替换  1 实现方法  先在Word中建立一个名为“通知书.dot”的模板,将通知书中固定的文字内容输入到该模板中, 将变动的文字内容(取数据库中的字段值)设置成书签(右图中的name、math等)为了编程方便,书签名可取数据库表中相应的字段名完成后存入Office的Templates(模板)目录下  要实现VBA与数据库Microsoft Access 97的连接,在Word中选主菜单 ”工具/宏/宏名”打开Visual Basic编辑器;选VBA主菜单条上[工具]菜单项下的[引用]命令,激活[引用]对话框,从可使用的引用列表中选择Microsoft DAO 2.5/3.5 Compatibility Libray一项,然后单击[确定]按钮,把它引用到工程中来。

        接下来在模板中编写出一条宏命令,直接在Word中用程序代码实现对数据库的读取对Access数据库,用语句Set md=DBEngine. OpenDatabase (“成绩库.mdb”)打开名为“成绩库.mdb”的数据库,用语句 Set rs=md. OpenRecordset("学生成绩表", dbOpenTable) 打开数据库中的表名为"学生成绩表"的记录集,本命令只对记录集进行查询,为了提高查询速度,选择了快照dbOpenSnapShot类型的记录对于foxpro的dbf数据库,用语句 Set md=OpenDatabase("d:/grade/学生成绩表", False, False, "foxpro 2.5")打开名为“成绩库.dbf”的数据库,用语句Set rs=md.OpenRecordset("学生成绩表")的记录集因为数据库中一条记录对应一个学生,每个学生都要打印一份通知书,都要用通知书的内容(包括书签),要将模板中的通知书全部内容复制到一个新建的临时文档中,处理完一条记录后,把通知书内容从新建的临时文挡中复制过来供下一条记录使用对于每个通知书(对应一条记录),用循环将数据表中的字段名用数组的形式保存,再根据通知书中的书签名与保存的字段名比较,如果存在则用语句 mydoc1.Bookmarks(i).Select选择的书签名, 用数据表中相应的字段值(rs.Fields(字段名))来替代文档中的所选择的书签名。

      右图为运行宏命令后的一个通知书  2 源程序清单  ‘从数据题中读取数据的宏,在Word97(2000)上调试运行  ‘开发者:湖南工程学院 陈华光  Sub start()  Dim i, j, k, m, nrecord , txtnumber As Integer  Dim aname(1 To 20) As String  Set md=DBEngine.OpenDatabase("D:/grade/成绩库.mdb")  Set rs=md.OpenRecordset("学生成绩表", dbOpenTable)  Set mydoc1=ActiveDocument  txtnumber=mydoc1.Characters.Count  Set range1=mydoc1.Range (start:=0, End:=txtnumber)  range1.Copy  mydoc2=Documents.Add  Selection.Paste  Set range2=mydoc2.Range(start:=0, End:=txtnumber)  mydoc1.Activate  On Error Resume Next  rs.MoveLast  nrecord=rs.RecordCount  On Error GoTo doerror  For k=1 To 20  aname(k)=rs.Fields(k).name  Next k  doerror:  For m=1 To nrecord  If m=1 Then rs.MoveFirst Else rs.MoveNext  For k=1 To 5     totalnumber=mydoc1.Bookmarks.Count '已存在的书签数  For i=totalnumber To 1 Step -1  bname=rs.Fields(aname(k))  If UCase$(mydoc1.Bookmarks(i).name)=UCase$(aname(k)) Then  mydoc1.Bookmarks(i).Select  Selection.TypeText Text:=bname  End If  Next i  Next k  Selection.MoveDown Unit:=wdLine, Count:=4  If m < nrecord Then  mydoc2.Activate  range2.Copy  mydoc1.Activate  Selection.Paste  End If  Next m  Documents(mydoc2).Close savechanges:=wdDoNotSaveChanges  End Sub   。

      点击阅读更多内容
      猜您喜欢
      国开电大作业范文-“任务驱动教学模式”在中学信息技术课教学中的研究.doc 国开电大作业范文-关系代词that 引导定语从句时的“六用三不用”.doc 国开电大作业范文-保险代位权的非定义化解读:内涵、区分及构成.doc 国开电大作业范文-“建构式”语言观下初中英语任务型阅读课教学设计的优.doc 国开电大作业范文-IP可视电话主要技术及存在的问题.doc 国开电大作业范文-企业高层管理团队绩效管理研究.doc 国开电大作业范文-“新型开放宏观经济学”的两个前沿课题刍述.doc 国开电大作业范文-ERP对提高制造业企业管理水平方面的作用.doc 国开电大作业范文-企业培训过程中存在的问题及对策分析.doc 国开电大作业范文-MSComm控件在中文Windows下的通信问题与处.doc 国开电大作业范文-再论情势变更原则.doc 国开电大作业范文-信息不对称与旅行社产品市场.doc 国开电大作业范文-“营改增”对建筑业影响的SWOT分析.doc 国开电大作业范文-会计职业道德建设之我见.doc 国开电大作业范文-关于信息管理原理问题的新思考.doc 国开电大作业范文-从跳单违约到居间报酬.doc 国开电大作业范文-加强学习培训 提高职工综合素质.doc 国开电大作业范文-人文关怀视角下的现代小学教育管理探析.doc 国开电大作业范文-三案六环节实施的突破口.doc 国开电大作业范文-上市公司财务预警指标体系构建中的方法应用.doc
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.