设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3595|回复: 6
打印 上一主题 下一主题

[Access本身] 关于将access表里数据逐行导入word表格里的问题(已解决)

[复制链接]
1#
发表于 2015-3-3 09:25:09 | 显示全部楼层
应该是导出到word吧?供参考
http://www.office-cn.net/forum.php?mod=viewthread&tid=113919
如果是从word导入到access,应该建立word组件再进行读取数据
2#
发表于 2015-3-3 11:06:34 | 显示全部楼层
本帖最后由 roych 于 2015-3-3 11:09 编辑

1、请先行引用 Microsoft Word 库。2、打开模块后按F5执行即可生成word表格(不做窗体按钮了,如有需要,请自行创建按钮,然后把代码复制到按钮的单击事件上)。
3、注意,不要删除模板。
4、其它说明见注释。
  1. Sub ExpDoc()
  2. Dim rst As New ADODB.Recordset
  3. '定义word组件、文档、表、单元格
  4. Dim wd As New Word.Application
  5. Dim doc As Word.Document
  6. Dim tbl As Table
  7. Dim cel As Cell
  8. Dim i As Long
  9. Dim j As Long
  10. '打开模板,模板只保留表头。这样的话,每次增加数据时只需要新增一行即可,以避免数据超出原表而不方便写入。
  11. Set doc = wd.Documents.Add(CurrentProject.Path & "\模板.doc")
  12. '打开记录集
  13. rst.Open "人员信息", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
  14. 'Null值无法写入。跳转处理比较麻烦,直接忽略掉。
  15. On Error Resume Next
  16. 'Word文档里的table序号、行列序号都是从1开始的哦。
  17. Set tbl = doc.Tables(1)
  18. For i = 1 To rst.RecordCount
  19. '新增一行,然后写入数据
  20.     tbl.Rows.Add
  21.     For j = 0 To rst.Fields.Count - 1
  22.         Set cel = tbl.Cell(i + 1, j + 1)
  23.         cel.Range = rst(j)
  24.     Next
  25.         rst.MoveNext
  26. Next
  27. rst.Close
  28. Set rst = Nothing
  29. '删除旧文件,并保存新文件,然后退出word程序。
  30. If Len(Dir(CurrentProject.Path & "\人员信息.doc")) > 0 Then Kill CurrentProject.Path & "\人员信息.doc"
  31. doc.SaveAs2 (CurrentProject.Path & "\人员信息.doc")
  32. doc.Close
  33. wd.Quit
  34. End Sub
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 22:56 , Processed in 0.100994 second(s), 25 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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