アクティブモジュール内のプロシージャを呼び出す場合と同様に、
アクティブモジュールと同じプロジェクトのモジュール内にある
プロシージャを呼び出すことができますが、複数のモジュールに
同じ名前のプロシージャが記述されている場合、呼び出しステートメント
でモジュール名を指定しなければなりません。
ここでは、2つのフォームを閉じる際に、2つのモジュールに
同じ名前で記述されているプロシージャを呼び出して、それぞれの
フォームを閉じます。
● 準備 ●
(1)フォームを2つ新規作成します。
フォーム名:フォーム1
フォーム名:フォーム2
(2)フォーム1を、デザインビューで開きます。
(3)フォーム1の次のプロパティを操作します。
開く時/Open
閉じる時/Close
(4)「開く時/Open」のイベントプロシージャに次のステートメントを
記述します。
Private Sub Form_Open(Cancel As Integer)
DoCmd.OpenForm "フォーム2"
End Sub
(5)標準モジュールを新規に2つ作成します。
モジュール名:Module1
モジュール名:Module2
(6)Module1に次のプロシージャを作成します。
Sub FormClose()
MsgBox "フォーム1を閉じます"
End Sub
(7)Module2に次のプロシージャを作成します。
Sub FormClose()
MsgBox "フォーム2を閉じます"
DoCmd.Close acForm, "フォーム2"
End Sub
(8)フォーム1の「閉じる時/Close」のイベントプロシージャに
次のステートメントを記述します。
Private Sub Form_Close()
'フォーム2を閉じるお知らせメッセージを表示して
'フォーム2を閉じる
Module2.FormClose
'フォーム1を閉じるお知らせメッセージを表示する
Module1.FormClose
End Sub
(9)フォーム1とModule1とModule2を保存して、
フォーム1とフォーム2は閉じます。
(10)フォーム1を開くと、同時にフォーム2も開かれます。
(11)フォーム1を閉じると、次のメッセージが表示され、
[OK]ボタンをクリックするとフォーム2が閉じられます。
「フォーム2を閉じます」
(12)続いて、次のメッセージが表示されて[OK]ボタンを
クリックするとフォーム1が閉じられます。
「フォーム1を閉じます」
|