45363
お世話になります。

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です。

よろしくお願いいたします。
CC BY-SA 4.0
2018-07-06T06:23:39.750
45358
2018-12-09T23:39:17.270
2018-12-09T23:39:17.270
3060
9374
question
vba ms-access form
AccessVBAで、フォームをダイアログで開いているはずが処理が流れてしまう
DoCmd.OpenForm は、第１引数のフォーム名以外は省略可能です。そのため、第２引数以降は引数名を明記しなくてはなりません。

```

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

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

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

```

    DoCmd.OpenForm "F_Floor", WindowMode:= acDialog 
    
```
CC BY-SA 4.0
2018-07-06T08:41:59.977
45363
2018-07-06T08:41:59.977
217
45358
answer