現在のフォームを閉じてメインフォームを開くマクロを作成しようとしています。
非常に多くのフォームがあり、すべてのフォームにこのマクロを含む同じボタンが必要なため、フォームごとにマクロを作成するのではなく、1回だけ作成します。
そうする方法はありますか?
コードモジュールを作成し、次の関数を追加します。
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
プロパティがあります。したがって、名前を文字列としてハードコードする必要なく、関数を閉じることができます(もちろん、メインフォームは除きます)。