Sorry to kinda necro this, but I haven't really had time to mess with it until now (other projects sidetracking, etc., I'm sure we all know how that goes).
Thank you for pointing me in the right direction, but I did have a question or two. I took out the unnecessary parts of the code (at least I think so), but I'm not sure how to proceed exactly.
The code is as follows atm:
Code:
Option Compare Database
Private Sub cmdVALetter_Click()
On Local Error GoTo Some_Err
Dim MyDB As Database, RS As Recordset
Dim strBody As String, lngCount As Long, lngRSCount As Long
DoCmd.RunCommand.acCmdSaveRecord
Set MyDB = DBEngine.Workspaces(0).Databases(0)
Set RS = MyDB.OpenRecordset _
("VA_List")
lngRSCount = RS.RecordCount
If lngRSCount = 0 Then
MsgBox "No items to print.", vbInformation
Else
RS.MoveLast
RS.MoveFirst
Do Until RS.EOF
lngCount = lngCount + 1
' This is where the print report goes in at
' This is the end of where the print report operation is
RS.MoveNext
Loop
End If
RS.Close
MyDB.Close
Set RS = Nothing
Set MyDB = Nothing
Close
Exit Sub
' Error handler:
Some_Err:
MsgBox "Error (" & CStr(Err.Number) & ") " & Err.Description, _
vbExclamation, "Error!"
End Sub
I assume the code works by going to one item, doing stuff, and then going to the next item. If this is the case, how would I open a Query with the report? The report I am using is a generic letter, with the important information attached to the person at the top (different fields for name, address, city, state, zip).
I assume I'd add something along these lines:
Code:
DoCmd.OpenReport "LetterName", acViewNormal
Would I put the query name where it says
Code:
Set RS = MyDB.OpenRecordset _
("VA_List")
I'm hoping that's it, otherwise I might have thousands of papers flying out of the printer here with a very guilty look on my face!
As always, thanks for all the help 
EDIT:
In case it might help, the code from a button on an unbound form.
I also meant to ask, how would I do any operations on the records to the report (for the sake of presentation, and concatenating city, state, and zip on the letter)?
The only way I've done it (kind of rigged I know), is making the person opening the reprot and using the "OnLoad" event with a "Print" button in the report footer that was only visible "On Screen."