Form data to Word Document

P

Patrick Graham

I have some forms setup where the information displayed
is determined by the ClientName the user selects from a
listbox.

I then have a button which I want to print a word
document which would use some of the data displayed in
the form.

I have no idea how to do this.

I could setup a perminent query and alter its sql
statement depending on the name selected and then run a
mail merge but it seems like there should be a better way.

Any ideas?
 
C

Cheryl Fischer

Patrick,

There are a couple of ways to go about getting data from your form into a
Word document. My preference is to use OLE automation to control Word and
fill bookmarks in a template (.DOT file). Some code that you can play with
to familiarize yourself with the concepts is found below.

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 text 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 the Word 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


hth,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top