web-dev-qa-db-ja.com

現在のフォームを閉じて、Accessで別のフォームを開きますか?

現在のフォームを閉じてメインフォームを開くマクロを作成しようとしています。

非常に多くのフォームがあり、すべてのフォームにこのマクロを含む同じボタンが必要なため、フォームごとにマクロを作成するのではなく、1回だけ作成します。

そうする方法はありますか?

6
Yarden

コードモジュールを作成し、次の関数を追加します。

Public Sub CloseMeAndOpenMain(frmMe As Form)
    DoCmd.Close acForm, frmMe.Name
    DoCmd.OpenForm "frmMain" 'Replace this with the actual name of your Main form
End Sub

これで、現在のフォームを閉じて「frmMain」フォームを開くボタンがあるたびに、クリックイベントハンドラーを次のように記述します。

Private Sub btnCloseForm_Click()
    CloseMeAndOpenMain Me
End Sub

Meは現在のフォームへの参照であり、各フォームにはNameプロパティがあります。したがって、名前を文字列としてハードコードする必要なく、関数を閉じることができます(もちろん、メインフォームは除きます)。

16
Blackhawk