Applies To Application object.
Description
You can use the CurrentObjectType and CurrentObjectName properties together with the Application object to determine the type of the active database object (table, query, form, report, macro, or module) and the name of the active database object. The active database object is the object that has the focus or in which code is running.
Setting
The CurrentObjectType property is set by Microsoft Access to one of the following Microsoft Access intrinsic constants.
Setting | Description |
acTable | The active object is a table. |
acQuery | The active object is a query. |
acForm | The active object is a form. |
acReport | The active object is a report. |
acMacro | The active object is a macro. |
acModule | The active object is a module. |
See Also SysCmd function.
Example The following example uses the CurrentObjectType and CurrentObjectName properties with the SysCmd function to determine if the active object is the Products form and if this form is open and has been changed but not saved. If these conditions are true, the form is saved and then closed.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