Formulaires et états : interfaces utilisateur
Introduction
Il est possible de personnaliser vos formulaires et états avec le langage VBA. Il est par exemple possible de :
-
modifier l’apparence d’un contrôle dans un état ou un formulaire (taille, position, couleur, etc.) ;
-
ajouter ou supprimer des contrôles dans un état ou un formulaire ;
-
afficher à la volée des formulaires en cliquant sur des boutons ;
-
imprimer un état ;
-
etc.
L’objet Form
L’objet Form, appartenant à la collection Forms, correspond à un formulaire Forms donnant la liste de tous les formulaires ouverts. L’objet Activeform pointe sur le formulaire actif.
1. Syntaxe
Pour se référer à un formulaire, il existe plusieurs syntaxes possibles, directement issues du parcours d’éléments de la collection Forms.
Forms!NomFormulaire
'Exemple Forms!Employes
Forms![NomFormulaire]
'Exemple : Forms![Employes]
Forms("NomFormulaire")
'Exemple : Forms("Employes")
Forms(Index)
'Exemple : Forms(2)
La syntaxe la plus fréquemment rencontrée et utilisée est Forms![NomFormulaire], permettant l’utilisation d’un nom de formulaire comportant un espace, ce que la première syntaxe ne permet pas de faire.
Pour se référer à un sous-formulaire à partir du formulaire parent, il faut passer par le nom de l’objet qui contient le sous-formulaire suivi du mot-clé Form.
[SousFormulaire].Form!ZonedeTexte
'Exemple : [Employe Detail].Form.Txt_Nom
2. Équivalence mode Création/VBA
a. Onglet Format
Dans le volet de navigation Feuille de propriétés, on peut voir apparaître dans l’onglet Format les éléments suivants.
Le tableau suivant inventorie les propriétés dans l’interface, leur équivalent en VBA ainsi que le type de donnée de la propriété.
Libellé IHM |
Propriété VBA |
Type de donnée |
Légende |
Caption |
String |
Affichage par défaut |
DefaultView |
Byte |
Autoriser le mode Formulaire |
AllowFormView |
Boolean |
Autoriser le mode Feuille de données |
AllowDatasheetView |
Boolean... |
L’objet Report
L’objet Report, qui appartient à la collection Reports, correspond à un état, Reports donnant la liste de tous les états ouverts. L’objet ActiveReport pointe sur l’état actif.
1. Syntaxe
Pour se référer à un état, il existe plusieurs syntaxes possibles, directement issues du parcours d’éléments de la collection Reports.
Reports!NomEtat
'Exemple Reports!Contrats
Reports![NomEtat]
'Exemple : Reports![Contrats]
Reports("NomEtat")
'Exemple : Reports("Contrats")
Reports(Index)
'Exemple : Reports(1)
Tout comme pour les formulaires, la syntaxe la plus fréquemment rencontrée et utilisée est Reports![NomEtat], permettant l’utilisation d’un nom d’état comportant un espace, ce que la première syntaxe ne permet pas de faire.
2. Équivalence mode Création/VBA
a. Onglet Format
Dans le volet de navigation Feuille de propriétés, on peut voir apparaître dans l’onglet Format les éléments suivants :
Le tableau suivant inventorie les propriétés dans l’interface, leur équivalent en VBA ainsi que le type de donnée de la propriété.
Libellé IHM |
Propriété VBA |
Type de donnée |
Légende |
Caption |
String |
Affichage par défaut |
DefaultView |
Byte |
Autoriser le mode État |
AllowReportView |
Boolean |
Autoriser le mode Page |
AllowLayoutView |
Boolean |
Type image |
PictureType |
Byte |
Image |
Picture |
String |
Mosaïque d’images |
PictureTiling |
Boolean |
Alignement de l’image |
PictureAlignment |
Byte |
Mode d’affichage de l’image |
PictureSizeMode |
Byte |
Largeur |
Width |
Integer |
Centrage auto |
AutoCenter |
Boolean... |
L’objet Control
L’objet Control, appartenant à la collection Controls, correspond à un contrôle ; Controls donnant la liste de tous les contrôles d’un formulaire, sous-formulaire, état ou sous-état. L’objet ActiveControl pointe sur le contrôle actif.
1. Syntaxe
Pour se référer à un contrôle, il existe plusieurs syntaxes possibles, directement issues du parcours d’éléments de la collection Controls.
FormulaireOuEtat!NomControle
'Exemple Me!Txt_Nom
FormulaireOuEtat![NomControle]
'Exemple : F_Employe![Txt_Nom]
FormulaireOuEtat("NomControle")
'Exemple : Me("Txt_Nom")
FormulaireOuEtat.NomControle
'Exemple : Me.Txt_Nom
On peut également passer par la collection Controls avec les syntaxes suivantes :
FormulaireOuEtat.Controls!NomControl
'Exemple Me.Controls!Txt_Nom
FormulaireOuEtat.Controls![NomControle]
'Exemple : F_Employe.Controls![Txt_Nom]
FormulaireOuEtat.Controls("NomControle")
'Exemple : Me.Controls("Txt_Nom")
FormulaireOuEtat.Controls(Index)
'Exemple : Me.Controls(3)
2. Propriétés génériques communes à la majorité des contrôles
Chaque contrôle a des propriétés, méthodes et événements qui lui sont propres. Les propriétés listées dans ce chapitre sont les propriétés génériques à la majorité des contrôles.
a. Propriétés liées aux dimensions
Propriété |
Description |
Height |
Représente la hauteur... |
Les contrôles Access
Les contrôles Access sont les éléments qui permettent d’enrichir une application et viennent compléter les interfaces que le développeur mettra à disposition de l’utilisateur final. Comme toute application professionnelle, elle se doit d’être intuitive, et la grande variété de contrôles directement disponibles dans le moteur Access, mais également la possibilité de faire appel à des contrôles complémentaires (appelés contrôles ActiveX) rend la réalisation de formulaires et d’états très aboutie.
L’objectif de cette section est de permettre au lecteur d’avoir un inventaire des contrôles directement disponibles, associés à leur type VBA correspondant.
Pour ajouter de nouveaux contrôles à un formulaire ou à un état, vous pouvez ouvrir le formulaire ou l’état en mode Création. Une fois ce mode enclenché, apparaît dans le ruban un onglet Conception de formulaires, dans lequel on peut voir le groupe Contrôles, dont voici le visuel :
Voici la liste des contrôles affichés dans l’ordre de lecture (de gauche à droite, de haut en bas) :
Libellé du contrôle |
Objet VBA équivalent |
Zone de texte |
TextBox |
Étiquette |
Label |
Bouton de commande |
CommandButton |
Contrôle onglet |
TabControl |
Lien |
Hyperlink |
Contrôle de navigation |
NavigationControl |
Groupe d’options |
OptionGroup |
Insérer un saut de page |
PageBreak |
Zone de liste déroulante |
ComboBox |
Courbe |
Line |
Bouton bascule |
ToggleButton |
Zone de liste |
ListBox |
Rectangle |
Rectangle |
Case à cocher |
CheckBox |
Cadre d’objet indépendant |
UnboundObjectFrame |
Pièce jointe |
Attachment |
Case d’option |
OptionButton |
Sous-formulaire/Sous-état |
SubForm/SubReport |
Cadre... |