Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

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.

images/1909RI1.png

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 :

images/1909RI5.png

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 :

images/0910N.png

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...