Application.CurrentObjectType-Eigenschaft (Access)
Verwenden Sie die CurrentObjectType-Eigenschaft zusammen mit dem Application-Objekt , um den Typ des aktiven Datenbankobjekts (Tabelle, Abfrage, Formular, Bericht, Makro, Modul, Serveransicht, Datenbankdiagramm oder gespeicherte Prozedur) zu bestimmen. Das Objekt mit dem Fokus oder das Objekt, in dem Code ausgeführt wird, ist das aktive Datenbankobjekt. Schreibgeschützter AcObjectType-Wert.
Syntax
Ausdruck. CurrentObjectType
expression Eine Variable, die ein Application-Objekt darstellt.
Bemerkungen
Die folgenden Bedingungen bestimmen, welches Objekt als das aktive Objekt gilt:
Wenn das aktive Objekt ein Eigenschaftenfenster, eine Befehlsleiste, ein Menü, eine Palette oder eine Feldliste eines Objekts ist, dann gibt die CurrentObjectType-Eigenschaft den Typ und den Namen des zugrunde liegenden Objekts zurück.
Ist das Objekt ein Popupformular, bezieht sich die CurrentObjectType-Eigenschaft auf das Popupformular selbst und nicht auf das Formular, von dem aus dieses geöffnet wurde.
Wenn das aktive Objekt das Datenbankfenster ist, gibt die CurrentObjectType-Eigenschaft das im Datenbankfenster ausgewählte Element zurück.
Wurde kein Objekt ausgewählt, gibt die CurrentObjectType-Eigenschaft True zurück.
Wenn der aktuelle Zustand mehrdeutig ist (das aktive Objekt ist keine Tabelle, Abfrage, Kein Formular, Bericht, Makro oder Modul), z. B. wenn ein Dialogfeld den Fokus hat, gibt die CurrentObjectType-EigenschaftTrue zurück.
Verwenden Sie diese Eigenschaft mit der SysCmd-Methode , um das aktive Objekt und seinen Zustand zu bestimmen (z. B. wenn das Objekt geöffnet, neu ist oder geändert, aber nicht gespeichert wurde).
Beispiel
Das folgende Beispiel verwendet die Eigenschaften CurrentObjectTypeCurrentObjectType und CurrentObjectNameCurrentObjectName zusammen mit der Funktion SysCmdSysCmd, um zu ermitteln, ob das aktive Objekt das Formular Artikel ist und ob dieses Formular geöffnet ist und geändert, aber nicht gespeichert wurde. Wenn diese Bedingungen erfüllt sind, wird das Formular gespeichert und dann geschlossen.
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
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.