From: jwebster1979 on
I have a form that is basically an invoice, I want a command button that
opens a report that will print only the invoice I am viewing. I have seen
this done before but have drawn a blank on how to accomplish this.
thanks
From: Stefan Hoffmann on
hi j,

On 28.04.2010 16:44, jwebster1979 wrote:
> I have a form that is basically an invoice, I want a command button that
> opens a report that will print only the invoice I am viewing. I have seen
> this done before but have drawn a blank on how to accomplish this.
You normally use the WhereCondition parameter of the DoCmd.OpenReport
action:

Sub OpenReport(ReportName,
[View As AcView = acViewNormal],
[FilterName],
[WhereCondition],
[WindowMode As AcWindowMode = acWindowNormal],
[OpenArgs])
Member of Access.DoCmd

Depending on your field and primary key names, you have to adapt this:

DoCmd.OpenReport _
"yourReportName", , , "primaryKeyField = " & Me![primaryKeyField]

You must include the 'primaryKeyField' in the data sources of the form
and the report. The name must be without any table name prefix.


mfG
--> stefan <--
From: fredg on
On Wed, 28 Apr 2010 07:44:01 -0700, jwebster1979 wrote:

> I have a form that is basically an invoice, I want a command button that
> opens a report that will print only the invoice I am viewing. I have seen
> this done before but have drawn a blank on how to accomplish this.
> thanks

First create a report that displays all of the data you want to show.

Then�K.

Your table should have a unique prime key field.
In my example it is named [RecordID].

On the command button's property sheet write
[Event Procedure]
on the Click event line.
Then click on the little button with 3 dots that will appear on that
line.
When the code window opens, the cursor will be flashing between 2
already existing lines of code.
Between those 2 lines write:

DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenReport "ReportName", acViewPreview , , "[RecordID] = " &
[RecordID]

The above assumes a [RecordID] field that is a Number Datatype.

If, however, [RecordID] is Text Datatype, then use:

DoCmd.OpenReport "ReportName", acViewPreview, ,"[RecordID] = '" &
[RecordID] & "'"

as the Where clause.

For clarity, the single and double quotes are..
"[RecordID] = ' " & [RecordID] & " ' "
Change [RecordID] to whatever the actual field name is that you are
using.

See VBA Help files for:
Where Clause + Restrict data to a subset of records
--
Fred
Please respond only to this newsgroup.
I do not reply to personal e-mail