プロが教える店舗&オフィスのセキュリティ対策術

メッセージボックスが表示される前に、フォームを表示させたいです。アクセスです。
ナビゲーションウインドウからフォームをダブルクリックしてフォームを開くのですが、
今のままだとメッセージボックスが表示されてからフォームが表示されてしまいます。

フォームを表示してからメッセージボックスを表示するにはどうすればいいでしょう?

Private Sub Form_Open(Cancel As Integer)
MsgBox "Form_Open"
End Sub

だと、先ほど述べたように、メッセージボックスが表示されてからフォームが表示されてしまいます。

フォームを開いたときのイベントは複数あるようで、
Private Sub Form_Activate()
MsgBox "Form_Activate"
Debug.Print "Form_Activate"
End Sub

Private Sub Form_Current()
MsgBox "Form_Current"
Debug.Print "Form_Current"
End Sub

Private Sub Form_GotFocus()
MsgBox "Form_GotFocus"
Debug.Print "Form_GotFocus"
End Sub

Private Sub Form_Open(Cancel As Integer)
MsgBox "Form_Open"
Debug.Print "Form_Open"
End Sub

Private Sub Form_Load()
MsgBox "Form_Load"
Debug.Print "Form_Load"
End Sub

をすると、
・Form_Load
・Form_Activate
・Form_GotFocus
・Form_Open
・Form_Current
の順に開きますが、やはりフォームが最後に表示されてしまいます。

どうにかして先にフォームを表示させる方法はないでしょうか?
ご回答よろしくお願いします。

A 回答 (3件)

>メッセージボックスが表示される前に、フォームを表示させたいです。


何故こんな事がしたいのか疑問ですが
これで近いことが出来るかも。

フォームの『タイマー間隔』欄に、5000
その上の『タイマー時』イベントの内容は
MsgBox "5秒経過"
Me.TimerInterval = 0
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/12/21 23:44

Private Sub Form_Open(Cancel As Integer)


  Me.Visible = True ' ★
  MsgBox "Form_Open"
End Sub

★行を追加してどうなりますか。

なお、イベントの発生順は
Form_Open
Form_Load
Form_Activate
Form_Current
の様な気がします。

詳しくは以下を参照ください

データベース オブジェクトのイベントの順序
http://office.microsoft.com/ja-jp/access-help/HA …
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/12/21 23:44

それかもう考え方を変えて、


標準モジュールに以下を書き、これを実行。

Sub F_open()
    MsgBox "開けゴマ"
    DoCmd.OpenForm "フォーム2"
    MsgBox "開いたよ"
End Sub

二つのメッセージボックスの出現タイミングの違いをお楽しみください。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2012/12/21 23:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています