同じ名前のプロシージャを呼び出してフォームを閉じる
 アクティブモジュール内のプロシージャを呼び出す場合と同様に、
アクティブモジュールと同じプロジェクトのモジュール内にある
プロシージャを呼び出すことができますが、複数のモジュールに
同じ名前のプロシージャが記述されている場合、呼び出しステートメント
でモジュール名を指定しなければなりません。

 ここでは、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を閉じます」

Access2000



戻る


Excel Word Access VBA! モーグ