複数の画面のメニューの遷移をスル場合、みなさんは、フォーム名をベタ書きで書いてらっしゃるのでしょうか。それとも、遷移元のフォームの名前を取得して戻るボタンをおした時に、そのフォームをVisible = trueにしたりしているのでしょうか。
私の場合には、ModuleにPublicで宣言した各フォームの階層事の変数に遷移元の名称の場合にだけ、そのフォームの名前を変数に保存して、戻るボタンでそのフォームを表示する処理をしています。
Private Sub Form_Load
module.Public変数 = module.Public遷移元の画面名
End Sub
Private Sub Cmd戻るボタン
Forms(module.Public遷移元の画面名).visible = true
DoCmd.Close acForm, Me.Name
End Sub
しかし、この画面の階層毎に変数をつくり、それに遷移元の画面名をセットするのも面倒くさいやり方で、これよりも何か楽な汎用性のあるやり方はありますでしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
補足の意味を読み取れていないような気がしますのでご参考まで。
「履歴としての戻る」と
「メニュー階層の上に戻る」をごっちゃに考えているような?
別解になってしまいますが、
Access2010から利用できるナビゲーションフォームも検討されては?
http://msdn.microsoft.com/ja-jp/library/office/f …
ありがとうございます。
上に戻る場合は、戻る上の画面の名前をそのままベタ書きでもいいのでしょうか。
履歴としての戻るの場合には、その前の画面の名前を取得するので、Form.OpenArgsとか、Screen.ActiveFormなんかで取得ができると思いますが。
このナビゲーションフォームは、全てのフォームが完成してから作成するような感じでしょうか?
No.2
- 回答日時:
たとえば呼び出し元で
DoCmd.OpenForm "フォーム名", OpenArgs:=Me.Name
と自身の名前をOpenArgsに渡します。
呼び出された側では
If Me.OpenArgs <> "" Then
If CurrentProject.AllForms(Me.OpenArgs).IsLoaded Then
Forms(Me.OpenArgs).SetFocus
Else
End If
End If
みたいなこととか・・・。
勘違い回答かも。ご参考まで。
この回答への補足
ご回答ありがとうございます。
そうするとですね、以下のような画面の遷移があるとするとおかしくなる場合があるんです。
Aメニュー→Bメニュー→Cメニュー→フォーム1
Aメニュー→Bメニュー→Cメニュー→フォーム2
Aメニュー→Bメニュー→Cメニュー→フォーム3
・Cから、フォーム1に行き、Cに戻り、フォーム2に行き、Cに戻る。
すると、CからBに戻れない。戻るボタンを押すと、フォーム2に行ってしまう。
こういうバグを治したロジックってどうすればいいのかな・・・と思ったのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) VBA 画面上のカーソルに文字数字を入力するコードを教えて下さい 1 2022/10/30 10:31
- JavaScript テーブルの中のセレクトボックスの値が0のとき、非表示にしたい 3 2022/05/29 10:13
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- HTML・CSS htmlで画面遷移させたい 1 2022/10/28 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面遷移が不正ですと表示されます
-
HTTPリクエストヘッダーの設定...
-
request.QueryStringについて
-
POSTだけして、ページの移動を...
-
VBAで画面遷移時のパラメータに...
-
オートマトンNFAからDFAへの変換
-
ASP.NET による画面遷移で質問...
-
ASPで画面間のパラメタ受け渡し
-
C#でテキストボックスとスクロ...
-
VB.NET 画面遷移
-
コネクション・セッション・ト...
-
Accessの画面更新を一時的に停...
-
DVD-Rの「セッションを閉じる」...
-
テキストボックスのクリックで...
-
asp.NET初心者です。「 ’Contex...
-
submitボタンにvalue属性の値で...
-
checkboxとlabelがずれる
-
VC++ MFC CListCtrlで、ボタン...
-
JSPでボタンを押したら、文字が...
-
VB.NETでボタンクリックイベン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTTPリクエストヘッダーの設定...
-
画面遷移が不正ですと表示されます
-
ASPで画面間のパラメタ受け渡し
-
【ASP.NET】ページ遷移してもGr...
-
エクセルVBA 別のブックのユ...
-
スマホで、左右にスワイプして...
-
Spreadのデータを別画面に引き渡す
-
Access2013 VBA 複数の画面の遷移
-
ページ遷移方法について
-
違うサイトに移動した時にcooki...
-
ログイン画面作成
-
Request Header の追加
-
WebBrowserのドラッグできるフ...
-
動的に作成したボタン(リンク...
-
VBAで画面遷移時のパラメータに...
-
セッション変数への値の代入方...
-
POSTだけして、ページの移動を...
-
server.transferで別のサイトへ
-
C#でテキストボックスとスクロ...
-
VB.NET 画面遷移
おすすめ情報