ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4038|回复: 3

帮忙啊,关于如何利用word模板传递参数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-9-8 15:54 | 显示全部楼层 |阅读模式

我想将我从access中的一条数据记录,填写到一个已经做好的word模板里,应该怎么处理?

有人有实例吗?或参考资料给我看看。

TA的精华主题

TA的得分主题

发表于 2004-9-8 15:58 | 显示全部楼层
ACCESS中自动化WORD的例子:发票套打程序(源代码)

采用了自动化WORD对象结合预定义好的模板格式来套打发票的程序。本例中有几个我感觉做得比较好的地方:1,模板的设计,特别是明细项中的设计,使用名称加数值,减少了代码编写量 2,代码判断共有几页的方法(有点象ASP的做法)3,代码中对明细页的记录集的读取。4,整体格式的设计

下载地址: http://www.accessqq.com/show.asp?id=142

这是我在论坛上看到 huanghai2002发表的,做的不错,具体代码我也不懂,不知道有没有帮助

TA的精华主题

TA的得分主题

发表于 2004-9-8 16:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

关于从ACCESS中向WORD填写数据的问题的说明

一、问题来源:http://www.office-cn.net/bbs/dispbbs.asp?boardID=2&ID=17414&page=1

解决的方法见上面附件。

二、解决问题的几个关键:

1.怎样在WORD空表格里填写内容;

2.填写的步骤;

3.关于主/子窗体的问题。

三、解决办法:

1.怎样在WORD空表格里填写内容:

ACCESS向WORD表格中填写数据需要使用TABLE对象,

Doc.Documents("模板.doc").Tables(1).Cell(Row:=2, Column:=1).Range.Text = "2" 表示在文件“模板.doc”的第1个表格的第2行第1列的格子内写上“2”。如果是第2个那就是“Tables(2)”。所以在程序里用了一个变量“intTabCount”表示现在是填写哪个表格,每当K可以被15整除(K Mod 15 = 0)时,intTabCount就会增加1。

2.填写的步骤:

如果看原来的问题,当程序执行完毕之后,正好是页面上需要重复的部分已经填写完毕。把现在的情况复制下来,当需要增加页时,在页面最下插入分页符然后粘贴上复制的内容则正好。

这一部分的代码我是在WORD中用录制宏的方法记录下来的。原来的录制宏代码如下:

Sub Macro1() ' ' Macro1 Macro ' 宏在 2004-8-15 由 刘小军 录制 ' Selection.WholeStory '全选文本 Selection.Copy '复制 Selection.EndKey Unit:=wdStory '将光标移到文件结尾(我是用Ctrl+End实现的) Selection.InsertBreak Type:=wdPageBreak '插入分页符 Selection.Paste '粘贴 End Sub

原本是5句代码,我分在两部分。第2部分的3句在下面的If结构里。

If K Mod 15 = 0 And K < intCount Then '如果K到达15的倍数且小于总记录数时增加一页(等于总数的话就不加了) intTabCount = intTabCount + 1 Doc.Selection.EndKey Unit:=6 'wdStory Doc.Selection.InsertBreak Type:=7 'wdPageBreak Doc.Selection.Paste End If

代码里把参数直接用数字代替时因为只有引用了“WORD 9.0 Object Library”才能使用参数。但这样不能在安装OFFICE XP的机器上使用,降低了兼容性。

至于如果获得参数代表的数字,很简单,在WORD的VBA编辑器的立即窗口里输入:

? wdStory 6

3.关于主/子窗体的问题:

程序里是用DAO获得子窗体的记录集,然后再根据记录集的内容填写的。使用ADO也可以。所以,只要能取得记录集,是主窗体还是子窗体根本就不是问题。

4.其它要注意的问题:

a.因为模板是每次都要使用的,而且要求里面是空的才行。所以最后会用SaveAs另存一个文件名,至于起什么名可以有很多种方法。程序里是用的日期相关的名字。

b.如果一开始就让文档显示出来,则在填写数据时页面会反复闪烁,而且填写速度很慢,所以程序里是在隐藏的状态下填写,然后再显示出来。

c.现在程序里还缺少一些错误处理的部分,有待进一步改进,也欢迎大家指正。

这是在access中国网站上看到的,很多我都不懂。

最好,这里的斑竹可以指点指点,我也想学习word调用access数据库的知识

先谢了

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-9-8 17:44 | 显示全部楼层
感谢〔shertin〕,明白怎么做了,用word的模板中插入文本域,在Access中利用建立一个CreateObject("word.application")连接word文档就可以了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-14 00:38 , Processed in 0.038430 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表