Word 的自动化生成 + Access 的数据管理,组合起来真的蛮实用的,尤其是在需要批量生成文档的时候,效率高。

VBA 在 Word 里折腾数据其实不难,关键就是学会怎么用书签当作定位点,把 Access 里的字段值一股脑儿塞进去。你只需要提前在 Word 模板里埋好书签,剩下的交给宏就行了,挺省事。

DAORecordset这些名词,听起来专业,其实用起来也就那几步:连数据库、开表、读记录、塞值。推荐你从一个宏开始,比如用下面这个:

Sub ReplaceWithDatabaseData()
  Dim i As Integer
  Dim rs As DAO.Recordset
  Dim wdDoc As Document
  Dim db As DAO.Database

Set wdDoc = ActiveDocument Set db = DBEngine.OpenDatabase("C:\path\to\database.accdb") Set rs = db.OpenRecordset("TableName")

For i = 0 To rs.Fields.Count - 1 wdDoc.Bookmarks(rs.Fields(i).Name).Range.Text = rs.Fields(i).Value Next i

rs.Close db.Close End Sub

嗯,像上面这样搞定一封个性化通知书啥的,不用几分钟。只要书签名和字段名一致,基本不用怎么调试。

如果你是搞行政、报表、发票之类的,强烈建议研究一下这个组合,模板 + 数据库,威力是真的大。Word 能排版,Access 管数据,VBA 一撮合,全自动生成报告轻轻松松。

想继续深入的话,下面这些链接你可以瞧瞧,都是干货: