Application.CreateControl method (Access)

La méthode CreateControl crée un contrôle dans un formulaire ouvert spécifié. Par exemple, supposez que vous vouliez créer un Assistant personnalisé qui permet aux utilisateurs de créer facilement un formulaire particulier. Utilisez la méthode CreateControl dans votre Assistant pour ajouter les contrôles appropriés au formulaire.

Syntaxe

expression. CreateControl (FormName, ControlType, Section, Parent, ColumnName, Left, Top, Width, Height)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
FormName Requis Chaîne Nom du formulaire ou de l'état ouvert dans lequel vous voulez créer le contrôle.
ControlType Requis AcControlType Constante AcControlType qui représente le type de contrôle que vous souhaitez créer.
Section Facultatif AcSection Constante AcSection qui identifie la section qui contiendra le nouveau contrôle.
Parent Facultatif Variant Nom du contrôle parent d'un contrôle attaché. Pour les contrôles qui n’ont pas de contrôle parent, utilisez une chaîne de longueur nulle pour cet argument ou omettez-la.
ColumnName Facultatif Variant Nom du champ auquel le contrôle sera lié s’il s’agit d’un contrôle lié aux données.
Left,Top Facultatif Variant Coordonnées du coin supérieur gauche du contrôle en twips.
Width, Height Facultatif Variant Expressions numériques indiquant la largeur et la hauteur du contrôle, exprimées en twips.

Valeur renvoyée

Contrôle

Remarques

Utilisez les méthodes CreateControl et CreateReportControl dans un Assistant personnalisé pour créer des contrôles sur un formulaire ou un état. Elles renvoient toutes deux un objet de type Control.

Utilisez les méthodes CreateControl et CreateReportControl uniquement en mode Création de formulaire ou en mode Création d’état, respectivement.

Vous utilisez l’argument Parent pour identifier la relation entre un contrôle principal et un contrôle subordonné. Par exemple, si une zone de texte possède une étiquette attachée, la zone de texte est la commande principale (ou parent) et l'étiquette, son contrôle subordonné (ou fils). Lorsque vous créez le contrôle label, définissez son argument Parent sur une chaîne identifiant le nom du contrôle parent. Lorsque vous créez la zone de texte, définissez son argument Parent sur une chaîne de longueur nulle.

Vous définissez également l’argument Parent lorsque vous créez des cases à cocher, des boutons d’option ou des boutons bascule. Un groupe d'options constitue le contrôle parent des cases à cocher, boutons d'options et boutons bascule qu'il contient. Seuls une étiquette, une case à cocher, un bouton d'options ou un bouton bascule peuvent posséder un contrôle parent. Tous ces contrôles peuvent être créés indépendamment sans aucun contrôle parent.

Définissez l’argument ColumnName en fonction du type de contrôle que vous créez et si celui-ci sera lié ou non à un champ dans une table. Les contrôles qui peuvent être liés à un champ comprennent les zones de texte, les zones de liste, les zones de liste déroulante, les groupes d'options et les cadres d'objets liés. De plus, les boutons bascule, les boutons d'options et les cases à cocher peuvent être liés à un champ s'ils ne font pas partie d'un groupe d'options.

Si vous spécifiez le nom d’un champ pour l’argument ColumnName , vous créez un contrôle lié à ce champ. Toutes les propriétés du contrôle sont automatiquement redéfinies avec les valeurs correspondantes des propriétés du champ. Par exemple, la valeur de la propriété ValidationRule du contrôle sera la même que la valeur de cette propriété pour le champ.

Remarque

Si votre Assistant crée des contrôles dans un formulaire ou un état, il doit ouvrir ce dernier en mode Création, que le formulaire ou l'état existe déjà ou non.

Pour supprimer un contrôle d’un formulaire ou d’un état, utilisez les méthodes DeleteControl et DeleteReportControl .

Exemple

Tout d’abord, l’exemple suivant crée un nouveau formulaire basé sur une table Orders (Commandes). Ensuite, il utilise la méthode CreateControl pour créer un contrôle de zone de texte et un contrôle d’étiquette lié dans le formulaire.

Sub NewControls() 
 Dim frm As Form 
 Dim ctlLabel As Control, ctlText As Control 
 Dim intDataX As Integer, intDataY As Integer 
 Dim intLabelX As Integer, intLabelY As Integer 
 
 ' Create new form with Orders table as its record source. 
 Set frm = CreateForm 
 frm.RecordSource = "Orders" 
 ' Set positioning values for new controls. 
 intLabelX = 100 
 intLabelY = 100 
 intDataX = 1000 
 intDataY = 100 
 ' Create unbound default-size text box in detail section. 
 Set ctlText = CreateControl(frm.Name, acTextBox, , "", "", _ 
 intDataX, intDataY) 
 ' Create child label control for text box. 
 Set ctlLabel = CreateControl(frm.Name, acLabel, , _ 
 ctlText.Name, "NewLabel", intLabelX, intLabelY) 
 ' Restore form. 
 DoCmd.Restore 
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.