1

*****編集済み

「NewInvoice」というタイトルのフォームがあります。このフォームは、以下を含むテーブル「Invoice」を編集します。請求書番号、顧客、注文日。このフォームには、「InvoiceItem」というタイトルのサブフォームを開くボタンがあります。これにより、請求書番号、品目コード、寸法などを含む同じ名前のテーブルが編集されます。

現在、私のボタンには次のようなイベント プロシージャがあります。


プライベート サブ CreateInvoiceItem_Click()

DoCmd.OpenForm "InvoiceItem", OpenArgs:="InvoiceNumber"

サブ終了


(ボタンを使用して別のウィンドウでフォームを開く理由は、サブフォームを親フォームに挿入すると壊れるサブフォームにカスケードコンボボックスがあるためです)

今私が問題を抱えているのは、Form Load コマンドの設定です。私が発生したいのは、ボタンをクリックすると、親フォームに入力された InvoiceNumber がサブフォームに自動的に入力されることです。


Private Sub Form_Load()

**** 必要なコード ****

サブ終了

4

2 に答える 2

0

これを行う最善の方法は、開いているフォームに Public サブサブを追加し、フォームを開くときに必要なパラメーターをこの関数に渡すことです。したがって、あなたが探していることを行うには、開いているフォームに次のような関数を追加します。

Public Sub SetUpForm(InvoiceNumber as Long)

    txtInvoiceNumber.Value = InvoiceNumber

End Sub

txtInvoiceNumber は、値を入力するフォーム上のコントロールです。

次に、ボタンから;

DoCmd.OpenForm "InvoiceItem"
Forms!InvoiceItem.SetUpForm InvoiceNumber

これにより、請求書番号の値が、開いているフォームのコントロールに渡されます。これにより、サブに複数のパラメーターを渡すことができ、サブで任意の数のタスクを実行できるため、プロセスを制御する柔軟性が大幅に向上します。

于 2017-04-26T07:51:03.123 に答える