Partage via


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.