0

私はVBAにかなり慣れていないので、請求書を印刷する請求書作成フォームにボタンを作成しようとしています。ボタンの On Click イベントは、レポートを開き、フォームの請求書 ID を openargs プロパティに割り当てる必要があります。

Private Sub cmdPrint_Click()
Dim InvoiceNum As Integer

If Me.Dirty Then    'Save any edits.
    Me.Dirty = False
End If

If Me.NewRecord Then 'Check there is a record to print
    MsgBox "Select a record to print"
Else
    InvoiceNum = Me.[Invoice Number]
    DoCmd.OpenReport "Invoice", acViewPreview, , , , InvoiceNum
End If
End Sub

次に、レポートを開くと、次のコードが実行されます。

Dim InvoiceNum As Integer
InvoiceNum = Me.OpenArgs

しかし、フォームのボタンをクリックすると、パラメータ入力ボックスが表示されます。奇妙なことに、このボックス内のテキストは、OpenArgs プロパティに割り当てたい請求書番号の値です。OpenArgs の値をフォームの請求書番号にする方法がわかりません。

何が間違っていたのかわからず、どこにも答えが見つからないようです。どんな助けでも大歓迎です。

4

3 に答える 3

0

Dim InvoiceNum As Integer InvoiceNum = Me.OpenArgs

InvoiceNum という変数を宣言し、その変数の値を Open Args に設定しているレポートを開くと、何かがおかしくなっているように見えます。その変数で何をするつもりなのかわかりません。請求書番号で請求書をフィルタリングすることが目的の場合は、次のようなことを試してください...

me.filter = "[Invoice Number]= " & Me.OpenArgs

あるいは、私が考えているのは、コントロール Source がフォームにバインドされていないコントロールがあり、InvoiceNumその値を OpenArgs に設定しようとしているということです。フォームが開くたびにバインドされていないコントロールであるためInvoiceNum、テーブルのフィールドではないため、パラメーター ボックスが表示されます。私が正しく、これが起こっている場合は、コントロール ソースで使用=[OpenArgs]し、フォームの OnLoad イベントからすべてのコードを削除して、そのコントロール ソースを Open Args に直接設定してみてください。

于 2015-04-06T07:46:09.710 に答える