Try 'Bookmarking' your word document with the control names on the form you are using to send the letter. For example: You may have a controls:
txtFullName
txtAddress
txtCity
txtState
txtZip
you want the values of these contols to show up on your word document. Open a blank doc, where you would put the above information put bookmarks. From the command bar click Insert/Bookmark. A box will appear, just type the name of the control that is on your form - exactly. (please read up on bookmarks in then Word help. It pretty easy to use)
Once that is done, save your document. Where your data will be you will see a symbol that looks like 'I'.
Now put a command button on your Access form and use the onClick Event use [Event Procedure]. Cut and Paste the following:
Dim objword As Object
Dim objWordDoc As Object
Dim ctlAny As control
Dim DirString As String
Const wdDoNotSaveChanges = 0
Const wdAllowOnlyComments = 1
On Error Resume Next
Set objword = CreateObject("Word.Application"
'What is the Operating System
Select Case fOSName()
Case "Windows 2000"
DirString = "c:\documents and settings\" & CurrentUser() & "\my documents\"
Case "Windows 98"
DirString = "c:\my documents\"
Case Else
End Select
objword.Documents.Add
Set objWordDoc = GetObject("[Path and DocFile]"

For Each ctlAny In Me.Controls
With objWordDoc.Bookmarks
If .Exists(ctlAny.NAME) Then
If Not IsNull(ctlAny.Value) Then
.Item(ctlAny.NAME).Range.Text = ctlAny.Value
End If
End With
Next
objWordDoc.Protect wdAllowOnlyComments, , "[AnyPassword]"
objWordDoc.SaveAs (DirString & strName(i))
objWordDoc.PrintOut Background:=False
objword.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
objword.Application.Quit SaveChanges:=wdDoNotSaveChanges
Set objword = Nothing
Set objWordDoc = Nothing
Exit Sub
I DID NOT CHECK THIS FOR ERRORS. I TOOK THIS CODE FROM AN APPLICATION I WROTE.
Paste the code below into a new module. This code tells Access what version of windows you have, Since Windows 2000 handles directories different.
'**************************Start code here***************************
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type
Private Declare Function apiGetVersionEx Lib "kernel32" _
Alias "GetVersionExA" _
(lpVersionInformation As Any) _
As Long
Private Const VER_PLATFORM_WIN32_WINDOWS = 1
Private Const VER_PLATFORM_WIN32_NT = 2
Function fOSName() As String
Dim osvi As OSVERSIONINFO
Dim strOut As String
osvi.dwOSVersionInfoSize = Len(osvi)
If CBool(apiGetVersionEx(osvi)) Then
With osvi
If .dwPlatformId = VER_PLATFORM_WIN32_NT And _
.dwMajorVersion = 5 Then
strOut = "Windows 2000 "
End If
If (.dwMajorVersion > 4 And _
(.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS And _
.dwMinorVersion > 0)) Then
strOut = "Windows 98"
End If
If (.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS And _
.dwMinorVersion = 0) Then
strOut = "Windows 95"
End If
If (.dwPlatformId = VER_PLATFORM_WIN32_NT And _
.dwMajorVersion <= 4) Then
strOut = "Windows NT "
End If
End With
End If
fOSName = strOut
End Function
' ********** Code End **********