AccessVBAで、フォームをダイアログで開いているはずが処理が流れてしまう

投稿者: Anonymous

お世話になります。

AccessのVBAで、フォームをダイアログで(そこでブロックして)表示しようとしているのですが、どうやってもそのまま処理が流れてしまいます。

行っていることは、
プロパティでは
・ポップアップ = はい
・作業ウィンドウ固定 = はい

実際にコードで表示する際には、
DoCmd.OpenForm “F_Floor”, , , , , acDialog
と 記述しています。

これだけの設定でできるはずなのですが、他に何か原因がありますでしょうか。

下記にその部分コードを記述します。

For cnt = 0 To 3
    MsgBox "" & cnt & "階です。"
    DoCmd.OpenForm "F_Floor", , , , , acDialog

    MsgBox "a"
Next

『○階です』の部分が出てから『a』が、F_Floorの終了を待たずに出てしまいます。

Accessのバージョンは2010です。

よろしくお願いいたします。

解決

DoCmd.OpenForm は、第1引数のフォーム名以外は省略可能です。そのため、第2引数以降は引数名を明記しなくてはなりません。

DoCmd.OpenForm "F_Floor", , , , , acDialog

で、WindowModeがacDialogになることを期待したのでしょうが、acDialogをどの引数として扱うかシステムが判断できないので機能しないのです。

上に示したコードの行を、以下のように修正してみてください。

DoCmd.OpenForm "F_Floor", WindowMode:= acDialog 
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *