Print current form only

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

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
print the current form that I'm working with?
Here's the current print procedure:

***************************
Private Sub PrintInvoice_Click()
On Error GoTo Err_PrintInvoice_Click

Dim stDocName As String

stDocName = "Invoice"
DoCmd.OpenReport stDocName, acNormal

Exit_PrintInvoice_Click:
Exit Sub

Err_PrintInvoice_Click:
MsgBox Err.Description
Resume Exit_PrintInvoice_Click

End Sub
***************************
 
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
 
Paul Doree said:
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

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
 
Back
Top