AccessVBAでフォームを画面遷移っぽく見せる
Accessでシステムを作るのに、ポップアップを使うと開きっぱなしにならずに便利だなーと思ってわりと使っていたのですが、前の画面を閉じながら遷移するように見せるという必要に迫られたのでメモ。なるほどこういう使い方もアリだなと思いました。
ポップアップ
このように、メニューともう1つフォームがあったとして、この「フォームを開く」ボタンのクリックイベントプロシージャに
Private Sub btn_フォームを開く_Click() DoCmd.OpenForm "F_SampleForm", , , , , acDialog End Sub
このように書いておくと、
ポップアップで対象フォームを開いて、このフォームを閉じるまでほかのウィンドウ操作ができなくなります。「開きっぱなし」がなくなるので、わりと好んで使っていたのですが。
画面遷移
Webページのような感覚で、同じウィンドウサイズで別フォームに画面遷移するには、ということを考えました。いろいろ方法はあるのかもしれないですが、今回考えたのはこんな感じです。難しいことはしていません。
このボタンのクリックイベントプロシージャに以下のように書きます。
Private Sub btn_フォームを開く_Click() DoCmd.OpenForm "F_SampleForm" DoCmd.Close acForm, Me.Name End Sub
DoCmd.OpenForm
の引数をフォーム名だけにすると、既定値のウィンドウモードで開きます。ほかのフォームを開いたら、自分自身を閉じています。
このボタンをクリックすると、
新しいフォームが開いて、メニューが閉じるので画面遷移したような気分になれます。ここに、「メニューへ戻る」ボタンを設置しておいて、そのボタンへも以下のように書けば、
Private Sub btn_メニューへ戻る_Click() DoCmd.OpenForm "F_menu" DoCmd.Close acForm, Me.Name End Sub
それをクリックしたら、
またメニューに戻れる、という算段です。
以上です! ポップアップも便利なんですけど、これもなかなか良さそう。状況によって使い分けるとよいかもですー!
コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。