テーブルやフォーム等のオブジェクトの状態を調べる : Access

Access VBAでSysCmd(acSysCmdGetObjectStateを使うと、オブジェクトが開いているかどうか等の状態を取得できます。

オブジェクトとは「テーブル」「クエリ」「フォーム」「レポート」「マクロ」「モジュール」になります。



BackHome BackTips Backメニュー

■ Access実行画面

「テーブル1の状態」ボタンをクリックすると、右のテキストボックスにテーブル1の状態が表示されます。
「フォーム1の状態」ボタンをクリックすると、右のテキストボックスにフォーム1の状態が表示されます。
オブジェクト状態取得フォーム
■オブジェクトの状態取得のSysCmdの書式:
SysCmd(acSysCmdGetObjectState,オブジェクトタイプ,オブジェクト名)

・オブジェクトタイプ
オブジェクト 定数



テーブル acTable 0
クエリ acQuery 1
フォーム acForm 2
レポート acReport 3
マクロ acMacro 4
モジュール acModule 5

・状態

定数 意味



acObjStateOpen 1 開いている
acObjStateDirty 2 変更後保存されていない
acObjStateNew 4 新しい

■ Access VBA 実行コード

Option Compare Database
Option Explicit

Private Sub コマンド0_Click()
    Dim lret
    lret = SysCmd(acSysCmdGetObjectState, acTable, "テーブル1")
    Me!テキスト6 = lret
End Sub

Private Sub コマンド5_Click()
    Dim lret
    lret = SysCmd(acSysCmdGetObjectState, acForm, "フォーム1")
    Me!テキスト8 = lret
End Sub

BackHome BackTips Backメニュー

Copyright(C) FeedSoft