Access) (Application.CurrentObjectType 屬性

使用 CurrentObjectType 屬性搭配 Application 物件來判斷使用中資料庫物件的類型, (資料表、查詢、表單、報表、宏、模組、伺服器檢視、資料庫關係圖或預存程式) 。 作用中的資料庫物件是具有焦點或程式碼正在執行的物件。 唯讀 AcObjectType

語法

運算式CurrentObjectType

expression 代表 Application 物件的變數。

註解

下列情況決定哪個物件會被視為作用中物件:

  • 如果作用中的物件是屬性表、 命令列、 功能表、 調色盤或欄位清單中的物件,則 CurrentObjectType 屬性會傳回基礎物件的類型。

  • 如果作用中的物件是快顯表單,則 CurrentObjectType 屬性會參照快顯表單本身,不開啟它的表單。

  • 如果作用中的物件是資料庫視窗,則 CurrentObjectType 屬性會傳回在 [資料庫] 視窗中選取的項目。

  • 如果未選取物件,則 CurrentObjectType 屬性會傳回 True

  • 如果目前狀態模棱兩可, (使用中物件不是資料表、查詢、表單、報表、宏或模組) ,例如,如果對話方塊具有焦點, 則 CurrentObjectType 屬性會傳回 True

使用此屬性搭配 SysCmd 方法來判斷使用中物件及其狀態 (例如,如果物件是開啟、新增或已變更,但未儲存) 。

範例

下列範例會使用 CurrentObjectTypeCurrentObjectName 屬性 SysCmd 函數來判斷作用中的物件是 Products 表單及如果此表單會在開啟並已變更但未儲存。 如果這些條件為真,格式為儲存並關閉。

Public Sub CheckProducts() 
 
 Dim intState As Integer 
 Dim intCurrentType As Integer 
 Dim strCurrentName As String 
 
 intCurrentType = Application.CurrentObjectType 
 strCurrentName = Application.CurrentObjectName 
 
 If intCurrentType = acForm And strCurrentName = "Products" Then 
 intState = SysCmd(acSysCmdGetObjectState, intCurrentType, _ 
 strCurrentName) 
 
 ' Products form changed but not saved. 
 If intState = acObjStateDirty + acObjStateOpen Then 
 
 ' Close Products form and save changes. 
 DoCmd.Close intCurrentType, strCurrentName, acSaveYes 
 End If 
 End If 
End Sub

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應