電子書籍の厳選無料作品が豊富!

Accessでフォームを同期的に起動することが出来ません。Docmdのオープンフォームではフォーム起動後に次ステップに進んでしまいます。何か良い方法が存在しないでしょうか?

A 回答 (1件)

やり方はいろいろ考えられると思いますが、一例を挙げると下記の通りです。



Private Sub Command1_Click()
DoCmd.OpenForm "FormName"

Do While CurrentProject.AllForms("FormName").IsLoaded
DoEvents
Loop

'処理
End Sub

IsLoaded プロパティが実装されていないバージョン (Access 97 以前?) の場合は、下記のように、同等のユーザー定義関数を実装すればOKです。

Private Sub Command1_Click()
DoCmd.OpenForm "FormName"

Do While FormIsLoaded("FormName")
DoEvents
Loop

'処理
End Sub

Public Function FormIsLoaded(ByRef strFormName As String) As Boolean
Dim i As Long

FormIsLoaded = True

For i = 0 To Forms.Count - 1
If StrComp(Forms(i).Name, strFormName, vbTextCompare) = 0 Then Exit Function
Next i

FormIsLoaded = False
End Function
    • good
    • 0

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

関連するカテゴリからQ&Aを探す