Partage via


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.