Propriété Application.CurrentObjectType (Access)
Utilisez la propriété CurrentObjectType avec l’objet Application pour déterminer le type de l’objet de base de données actif (table, requête, formulaire, état, macro, module, vue serveur, diagramme de base de données ou procédure stockée). L'objet de base de données actif est l'objet qui a le focus ou dans lequel le code est en cours d'exécution. En lecture seule AcObjectType.
Syntaxe
expression. CurrentObjectType
expressionUne variable qui représente un objetApplication.
Remarques
Les conditions suivantes déterminent l'objet qui est considéré comme actif :
Si l'objet actif est une feuille de propriétés, la barre de commandes, menu, palette ou de liste de champs d'un objet, la propriété CurrentObjectType renvoie le type de l'objet sous-jacent.
Si l'objet actif est un formulaire indépendant, la propriété CurrentObjectType fait référence au formulaire indépendant lui-même et non au formulaire à partir de laquelle il a été ouvert.
Si l'objet actif est la fenêtre Base de données, la propriété CurrentObjectType renvoie l'élément sélectionné dans la fenêtre Base de données.
Si aucun objet n'est sélectionné, la propriété CurrentObjectType renvoie la valeur True.
Si l’état actuel est ambigu (l’objet actif n’est pas une table, une requête, un formulaire, un état, une macro ou un module), par exemple, si une boîte de dialogue a le focus, la propriété CurrentObjectType renvoie True.
Utilisez cette propriété avec la méthode SysCmd pour déterminer l’objet actif et son état (par exemple, si l’objet est ouvert, nouveau ou a été modifié mais pas enregistré).
Exemple
L'exemple suivant utilise les propriétés CurrentObjectType et CurrentObjectName avec la fonction SysCmd pour déterminer si l'objet actif est le formulaire Products et si ce formulaire est ouvert et qu'il a été modifié sans être enregistré. Si ces conditions sont remplies, le formulaire est enregistré et enfin fermé.
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
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.