Microsoft Access VBA - フォームが開いているかどうかを調べる方法
◆SysCmdメソッド
SysCmdメソッドを利用すると、指定したAccessオブジェクトが開いているかどうかを確認することができます。SysCmdの第一引数 action に定数 acSysCmdGetObjectState を指定した場合、SysCmd メソッドは、次の定数の組み合わせを返します。
定数 | データベース オブジェクトの状態 | 値 |
acObjStateOpen | 開いている | 1 |
acObjStateDirty | 変更後保存されていない | 2 |
acObjStateNew | 新しい | 4 |
オブジェクトが開いていないか、または存在しない場合は、SysCmd メソッドは 0 を返します。
◆Sample
次の例は、frmMainというフォームが開いているかどうかを確認します。
Private Sub コマンド2_Click() Dim frmname As String ' フォーム名を設定 frmname = "frmMain" ' フォームが閉じているとき ' acSysCmdGetObjectStateの定数は10なので、 ' acSysCmdGetObjectStateの代わりに10でもよい。 If SysCmd(acSysCmdGetObjectState, acForm, frmname) = 0 Then MsgBox frmname & "は閉じています。" ' フォームが開いているとき ElseIf SysCmd(acSysCmdGetObjectState, acForm, frmname) = 1 Then ' ' 定数1の代わりにacObjStateOpenでもよい MsgBox frmname & "は開いています。" End If End Sub
▼ページトップに戻る