我想在Word中创建一个模板,然后我可以使用Access将数据合并到。 Access数据具有不同级别的分组。在每个分组中,有子查询也可能具有分组。由于存在分组,因此需要重复某些页面。
示例:我有一个打印教室详细信息的查询。每个教室里也有很多学生。所以,我想有一个DOTM模板,按类分组每个学生。然后打印第一堂课的细节,然后是学生,然后是下一堂课,然后是学生等。
访问表/查询等不是问题。它创建了一个模板,然后合并它,我遇到了问题。现在,我只有一个简单的模板(Dotm文件)。该文件有一些样板文件和一些书签。然后我使用此代码与dotm文件进行交互:
Dim objWord As Word.Application
Dim PauseTime, Start, Timer As Integer
Dim wrkCurrent As DAO.Workspace
Set objWord = CreateObject("Word.Application")
objWord.Visible = False 'True is visible
Dim sql As String
sql = "SELECT * FROM tbl_School" 'ex query that produces more that one record
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set wrkCurrent = DBEngine.Workspaces(0)
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(sql)
objWord.Documents.Add ("C:\test\Test.dotm")
'this template has one page, with one bookmark, School_Name. What I want
' to happen is that, for every record, create a new page, with this
'bookmark filled in.
If (Not rst.EOF) Then
With rst
Do Until .EOF
objWord.ActiveDocument.Bookmarks("School_Name").Select
objWord.Selection.Text = rst!school_name
.MoveNext
Loop
End With
End If
objWord.ActiveDocument.SaveAs ("C:\test\MyNewDocument.docx")
objWord.PrintOut
objWord.Quit
Set objWord = Nothing
问题是这只打印第一个,然后是错误。我该怎么做分组?仅供参考,我知道我可以在报告中执行此操作,但我必须允许将报告导出到Word,保留导出丢失的图像,图形等。