I would use code to merge to MSWord to accomplish it. Here's my code, start by building a template and storing it in the same file with your database.
Private Sub MergeBttn_Click()
'Declare variables for storing strings.
Dim AddyLineVar As String, SalutationVar As String
Dim DeliveryAdd As String, PmName As String, CustCompany As String
Dim ProjectDescriptionLine As String
'Start building AddyLineVar, by dealing with blank last name fields.
If IsNull([sfrmContacts].[Form]![Last]) Then
AddyLineVar = [Company]
'Just set salutation to generic.
SalutationVar = "Sir or Madam"
Else
AddyLineVar = ([sfrmContacts].[Form]![Title]) & " " & ([sfrmContacts].[Form]![First]) & " " & ([sfrmContacts].[Form]![Last])
'Add Company on after name.
If Not IsNull([Company]) Then
AddyLineVar = AddyLineVar & vbCrLf & [Company]
End If
'Salutation will be customer's last name
SalutationVar = ([sfrmContacts].[Form]![Title]) & " " & ([sfrmContacts].[Form]![Last]) & ", "
End If
'Start building DeliveryAdd, by dealing with blank email fields.
If IsNull([sfrmContacts].[Form]!) Then
DeliveryAdd = "Fax: " & [sfrmContacts].[Form]![BusinessFax]
Else
DeliveryAdd = "E-mail: " & [sfrmContacts].[Form]![Email]
End If
'Add line break and Address lines.
AddyLineVar = AddyLineVar & vbCrLf & ([sfrmContacts].[Form]![Address])
'Tack on line break then city, state, and zip.
AddyLineVar = AddyLineVar & vbCrLf & ([sfrmContacts].[Form]![City]) & ", "
AddyLineVar = AddyLineVar & ([sfrmContacts].[Form]![State]) & " " & ([sfrmContacts].[Form]![ZipCode])
CustCompany = ([sfrmContacts].[Form]![Title]) & " " & ([sfrmContacts].[Form]![First]) & " " & ([sfrmContacts].[Form]![Last]) & vbCrLf & [Company]
'Set PMName to first and last name
PmName = [sfrmPMTitles].[Form]![FirstName] & " " & [sfrmPMTitles].[Form]![LastName]
'Declare an instance of MS Word.
Dim Wrd As New Word.Application
Set Wrd = CreateObject("Word.Application")
'Specify the path and name to the word document.
Dim MergeDoc As String
MergeDoc = Application.CurrentProject.Path
MergeDoc = MergeDoc & "\WordFormLetter.dotx"
'Open the word document template, make it visible.
Wrd.Documents.Add MergeDoc
Wrd.Visible = True
'Replace each bookmark with current data.
With Wrd.ActiveDocument.Bookmarks
.Item("ProjectDescription").Range.Text = Me.ProjectDescription
.Item("AddressLines").Range.Text = AddyLineVar
.Item("Salutation").Range.Text = SalutationVar
.Item("Phone").Range.Text = sfrmContacts.Form!Phone
.Item("JobNumber").Range.Text = JobNumber
.Item("PMInitials").Range.Text = Manager
.Item("Typist").Range.Text = [Entered_By]
.Item("JobNumber2").Range.Text = JobNumber
.Item("Phone2").Range.Text = sfrmContacts.Form!Phone
.Item("BusinessFax2").Range.Text = DeliveryAdd
.Item("Delivery").Range.Text = DeliveryAdd
.Item("ProjectDescription2").Range.Text = ProjectDescription
.Item("ProjectManager").Range.Text = PmName
.Item("PMTitle").Range.Text = [sfrmPMTitles].[Form]![Title]
.Item("CustCompany").Range.Text = CustCompany
.Item("ProjectManager2").Range.Text = PmName
.Item("PMTitle2").Range.Text = [sfrmPMTitles].[Form]![Title]
.Item("ContractAmount").Range.Text = FormatCurrency(([sfrmContractAmount].[Form]![ContractAmount]), 2)
End With
MsgBox "Your Document is Ready." & vbCrLf & "Please re-name your document and save to the job file.", vbOKOnly, "Successful"
End Sub