The following code shows how to do this from a form. First, create a Word
template for your form letter. For this example, the document name is
C:\FormLetter.dot. In this template, you'll use the Insert \ Bookmark
command to create a bookmark at each location in the Word template where
you'll want to insert Access data. For this example, I'm using simple Name
and Address fields.
In Access, open any Module in design view. Then select Tools|References and
make sure that you have a reference to the appropriate Word library. Look
for "Microsoft Word xx.x Object Library, where xx.x is theWord version
number. For this example, you will also need a reference to DAO.
' Behind a command button on a form, insert the following code.
BEGIN CODE SAMPLE:
Dim objWord As Object
' Open Microsoft Word using automation
Set objWord = New Word.Application
objWord.Documents.Add "c:\FormLetter.dot"
objWord.Visible = True
' The following code is generated from your Access form while it is
' manipulating an instance of Word.
' So, while it looks somewhat like VBA, it's really Word VBA.
If objWord.ActiveDocument.Bookmarks.Exists("FirstName") = True Then
objWord.ActiveDocument.Bookmarks("FirstName").Range.Text = me!FirstName
End If
If objWord.ActiveDocument.Bookmarks.Exists("LastName") = True Then
objWord.ActiveDocument.Bookmarks("LastName").Range.Text = me!LastName
End If
' ... continue reading data from form and inserting into bookmark
END CODE SAMPLE