1

次のようなナビゲーションフォームがあります。

ここに画像の説明を入力

Customers フォームに、Orders フォームからパブリック サブルーチンを呼び出したいコマンド ボタンがありますが、それを参照する方法がわかりません。私が試してみました:

Forms!frmOrders.MyPublicSub("Arg")

しかし、「参照されたフォーム「frmOrders」が見つかりません」というエラーが表示されました。これを適切に行う方法を知っている人はいますか?

ありがとうございました。

4

2 に答える 2

2

Access オブジェクト (フォームまたはレポート) に対して宣言されているVBA プロシージャ (Subまたは) がある場合は、そのオブジェクトに対してプライベートとして動作することを期待する必要があります。「他の場所」から呼び出すことができるプロシージャが必要な場合は、それを通常の VBA に入れます(念のため、として宣言します)。FunctionClass ModuleModulePublic

于 2013-04-23T23:20:39.220 に答える
0

上記の Gord Thompson の発言は真実ですが、フォーム内のプロシージャを直接参照する方が簡単な場合があります。たとえば、プロシージャがサブフォーム自体内の複数のコントロールを参照している場合などです。このような場合、次のように呼び出してナビゲーション サブフォームを参照できます。

Me.NavigationSubform.Form.YourPublicProcedure

しかし、注意してください... ナビゲーション フォームにはいくつかの落とし穴があります... (私たち全員が発見したように)。上記のコードのように、通常の親フォーム/サブフォームの関係でサブフォームを参照した経験があることは明らかですが、ナビゲーションフォームは動作方法と処理方法が異なります。上記で送信したコードは、サブフォーム public sub を参照します... しかし、public サブを持つサブフォームを現在表示していない場合は、例外がスローされます。

于 2015-04-28T02:51:31.753 に答える