次のようなナビゲーションフォームがあります。
Customers フォームに、Orders フォームからパブリック サブルーチンを呼び出したいコマンド ボタンがありますが、それを参照する方法がわかりません。私が試してみました:
Forms!frmOrders.MyPublicSub("Arg")
しかし、「参照されたフォーム「frmOrders」が見つかりません」というエラーが表示されました。これを適切に行う方法を知っている人はいますか?
ありがとうございました。
次のようなナビゲーションフォームがあります。
Customers フォームに、Orders フォームからパブリック サブルーチンを呼び出したいコマンド ボタンがありますが、それを参照する方法がわかりません。私が試してみました:
Forms!frmOrders.MyPublicSub("Arg")
しかし、「参照されたフォーム「frmOrders」が見つかりません」というエラーが表示されました。これを適切に行う方法を知っている人はいますか?
ありがとうございました。
Access オブジェクト (フォームまたはレポート) に対して宣言されているVBA プロシージャ (Sub
または) がある場合は、そのオブジェクトに対してプライベートとして動作することを期待する必要があります。「他の場所」から呼び出すことができるプロシージャが必要な場合は、それを通常の VBA に入れます(念のため、として宣言します)。Function
Class Module
Module
Public
上記の Gord Thompson の発言は真実ですが、フォーム内のプロシージャを直接参照する方が簡単な場合があります。たとえば、プロシージャがサブフォーム自体内の複数のコントロールを参照している場合などです。このような場合、次のように呼び出してナビゲーション サブフォームを参照できます。
Me.NavigationSubform.Form.YourPublicProcedure
しかし、注意してください... ナビゲーション フォームにはいくつかの落とし穴があります... (私たち全員が発見したように)。上記のコードのように、通常の親フォーム/サブフォームの関係でサブフォームを参照した経験があることは明らかですが、ナビゲーションフォームは動作方法と処理方法が異なります。上記で送信したコードは、サブフォーム public sub を参照します... しかし、public サブを持つサブフォームを現在表示していない場合は、例外がスローされます。