CurrentObjectType 屬性

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

可以使用 CurrentObjectType 屬性和 Application 對象確定活動數(shù)據(jù)庫對象的類型(表、查詢、窗體、報表、宏、模塊、數(shù)據(jù)訪問頁、服務(wù)器視圖、數(shù)據(jù)庫圖表或存儲過程)?;顒訑?shù)據(jù)庫對象是獲得了焦點的對象,或者其中的代碼正在執(zhí)行的對象。

CurrentObjectType 屬性由 Microsoft Access 設(shè)置為以下 Microsoft Access 固有常量。

設(shè)置

說明

acTable (0)

活動對象為表。

acQuery (1)

活動對象為查詢。

acForm (2)

活動對象為窗體。

acReport (3)

活動對象為報表。

acMacro (4)

活動對象為宏。

acModule (5)

活動對象為模塊。

acDataAccessPage (6)

活動對象為數(shù)據(jù)訪問頁。

acServerView (7)

活動對象為服務(wù)器視圖

acDiagram (8)

活動對象為數(shù)據(jù)庫圖表。

acStoredProcedure (9)

活動對象為存儲過程。

下列條件用于確定對象是否為活動對象:

?如果活動對象是對象的屬性表、命令按鈕、菜單、模板或屬性列表,CurrentObjectType 屬性將返回基礎(chǔ)對象的名稱。

 

?如果活動對象是彈出式窗體CurrentObjectType 屬性將引用彈出式窗體本身,而不是其下的窗體。

 

?如果活動對象是“數(shù)據(jù)庫”窗口,CurrentObjectType 屬性將返回在“數(shù)據(jù)庫”窗口中選取的對象。

 

?如果沒有選取任何對象,CurrentObjectType 屬性將返回 True。

 

?如果當(dāng)前狀態(tài)比較模糊(活動對象不是表、查詢、窗體、報表、宏或模塊),如一個對話框獲得焦點,則 CurrentObjectType 屬性返回 True。

可以將 SysCmd 方法與該屬性一起使用來確定活動對象和它的狀態(tài)(例如,對象是否打開、新建或是已經(jīng)更改但還未保存)。

示例

以下示例使用 SysCmd 函數(shù)、CurrentObjectTypeCurrentObjectName 屬性來確定活動對象是否為“產(chǎn)品”窗體,以及此窗體是否打開而且已經(jīng)更改,只是沒有保存。如果這些條件為真,則窗體將被保存然后關(guān)閉。

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