Hi,
The following will do the job (it picks up your invoiceID from your form and
passes it to the report, printing only that record displaying on the
screen):
Dim strDocName As String
Dim strWhere As String
strDocName = "Invoice"
strWhere = "[InvoiceID]=" & Me!InvoiceID
DoCmd.OpenReport strDocName, acViewNormal, , strWhere
> I've placed a "Print Invoice" command button on the bottom of a form, but
> when I select the button, ALL of the invoices are printed. How can I just
[quoted text clipped - 19 lines]
> End Sub
> ***************************
Albert D. Kallal - 07 Jan 2005 14:16 GMT
> Hi,
>
[quoted text clipped - 7 lines]
> strWhere = "[InvoiceID]=" & Me!InvoiceID
> DoCmd.OpenReport strDocName, acViewNormal, , strWhere
The above you have is 100%, however, if the user changes some data and hits
print, those changes
have NOT yet been saved, and will not appear in the invoice.
You nee add the following one line to force (write) the data to disk so the
report will see this data:
> Dim strDocName As String
> Dim strWhere As String
me.Refresh <---- add this line to force a disk write....
> strDocName = "Invoice"
> strWhere = "[InvoiceID]=" & Me!InvoiceID
> DoCmd.OpenReport strDocName, acViewNormal, , strWhere

Signature
Albert D. Kallal (Access MVP)
Edmonton, Alberta Canada
pleaseNOOSpamKallal@msn.com
http://www.attcanada.net/~kallal.msn