Propriété Application.CurrentObjectName (Access)
Utilisez la propriété CurrentObjectName avec l’objet Application pour déterminer le nom de l’objet de base de données actif. 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. String en lecture seule.
Syntaxe
expression. CurrentObjectName
expressionUne variable qui représente un objetApplication.
Remarques
La propriété CurrentObjectName est définie par Microsoft Access à une expression chaîne contenant le nom de l'objet actif.
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é CurrentObjectName renvoie le nom de l'objet sous-jacent.
Si l'objet actif est un formulaire indépendant, la propriété CurrentObjectName 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é CurrentObjectName renvoie l'élément sélectionné dans la fenêtre Base de données.
Si aucun objet n'est sélectionné, la propriété CurrentObjectName renvoie une chaîne de longueur nulle ("").
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é CurrentObjectName renvoie le nom de la boîte de dialogue.
Exemple
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é).
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.