Librairie pour arbres, grilles et listes sous Access
Date de publication : 03/12/09 , Date de mise à jour : 01/02/10
Par
Thierry GASPERMENT (arkham46.developpez.com/)
Cette librairie Access permet d'insérer dans un formulaire :
- un arbre
- une grille
- ou une liste d'images
Chacun de ces trois types de contrôles peut également être utilisé comme explorateur de fichiers.
2 commentaires
I. Introduction
II. Gdi+ ou Gdi32?
III. Installation
IV. Vérification des versions
V. Ajout d'un contrôle
V-A. Ajout du sous-formulaire
V-B. Initialisation du contrôle
V-C. Ajout d'élément au contrôle
V-D. Utilisation du contrôle
V-E. Gérer les événements du contrôle
VIII. Références
VI-A. Objets contrôles
VI-B. Autres objets
VI-C. Enumérations
IX. Téléchargements
I. Introduction
Access ne propose pas d'arbre ou de liste élaborée dans sa liste de contrôles standards.
Les contrôles de cette librairie ont été développés en VBA à l'aide de
clGdiplus ou
clGdi32.
Voici un aperçu de ce qu'il est possible de réaliser :
Affichage des informations de ruban sous forme d'arbre, utilisé dans l'
Assistant Ruban :
Fenêtre de sélection d'image, utilisé dans le
créateur de mosaîques de photos :
 |
TGL signifie Tree Grid List.
|
 |
Il existe également des contrôles ActiveX qui peuvent vous donner satisfaction : Microsoft TreeView ou ListView.
|
 |
Cette librairie fonctionne avec Access 2000 ou supérieur.
|
II. Gdi+ ou Gdi32?
La librairie existe en deux versions : Gdi+ ou Gdi32.
La version Gdi+ offre en plus :
- l'accès aux données Exif des photos, notamment la miniature Exif pour un affichage rapide.
- un lissage plus efficace des images.
- un plus grand nombre de formats d'images reconnus.
- la transparence des menus du contrôle "Liste d'images".
Préférez gdi+ si vous souhaitez afficher rapidement de nombreuses images.
Sinon gdi32 est suffisant.
III. Installation

Téléchargez la librairie
LibTGL, au choix en
Version Gdi32 ou en
Version Gdi+.
Liens de secours :
Version Gdi32 ou
Version Gdi+.

Placez le fichier téléchargé et décompressé
LibTGL32.mdb ou
LibTGLplus.mdb dans le même répertoire que le fichier Access que vous développez.

Ouvrez ensuite l'éditeur VBA dans votre application :
- Raccourci clavier :
ALT +
F11.
- Ou par le menu :

Avant Access 2007

A partir d'Access 2007

Ouvrez la fenêtre des références :
Dans le menu :
Outils =>
Références ....
Cliquez sur le bouton
Parcourir et sélectionnez le fichier
LibTGL32.mdb ou
LibTGLplus.mdb.
Pensez à choisir le type de fichier
mdb dans la liste déroulante en bas de la fenêtre pour pouvoir sélectionner le fichier.
Cliquez sur ouvrir pour ajouter la librairie en référence du projet.
La librairie
LibTGL apparaît alors dans les références :

Ensuite il est nécessaire d'importer un formulaire de la librairie dans votre application :

Avant Access 2007

A partir d'Access 2007
Recherchez le fichier
LibTGL32.mdb ou
LibTGLplus.mdb.
Puis choisissez le formulaire
subFormLibTGLControl et cliquez sur
OK.

Votre application est maintenant prête à utiliser les contrôles de la librairie.
IV. Vérification des versions
Exécutez le fichier de la librairie (LibTGL32.mdb ou LibTGLPlus.mdb) pour vérifier si une nouvelle version existe.
Pour télécharger la dernière version, cliquez sur le bouton
Télécharger la dernière version.
La mise à jour est manuelle : il suffit de remplacer le fichier de librairie par la nouvelle version.
V. Ajout d'un contrôle
Pour débuter, nous allons créer un arbre et le remplir avec quelques éléments.
V-A. Ajout du sous-formulaire
Chaque contrôle de la librairie est hébergé dans un sous-formulaire.
Dans votre formulaire, ajoutez donc un sous-formulaire :

Avant Access 2007

A partir d'Access 2007
Utilisez en objet source le formulaire importé de la librairie :
subFormLibTGLControl.
Donnez au contrôle sous-formulaire un nom parlant :
subFormTree par exemple, nous allons créer un arbre pour notre premier contrôle.
Redimensionnez le sous-formulaire à la taille désirée.
 |
Vous pouvez à partir d'Access 2007 utiliser les paramètres d'ancrage pour redimensionner automatiquement le contrôle lors du redimensionnement du formulaire.
|
V-B. Initialisation du contrôle
Une fois le sous-formulaire créé, il faut définir en VBA le type de contrôle souhaité.
Dans les propriétés de votre formulaire, affichez l'onglet Autre.
Donner la valeur Oui à la propriété Avec module.
Affichez maintenant l'éditeur VBA (ALT + F11).
Puis ouvrez le module Form_NomDeVotreFormulaire.
 |
Ajoutez s'il elle n'est pas déjà présente en haut de module l'instruction Open Explicit.
|
Déclarez ensuite une variable objet pour gérer le contrôle.
| Déclaration de l'objet contrôle |
Private WithEvents oTree As CtrlTree
|
La variable
oTree est donc un objet de type
CtrlTree.
CtrlTree correspond à un contrôle arbre.
Ce type de contrôle peut prendre les valeurs :
-
CtrlTree => Arbre
-
CtrlTreeExplorer => Arbre - explorateur de fichiers
-
CtrlImageList => Liste d'images
-
CtrlImageListExplorer => Liste d'images - explorateur de fichiers
-
CtrlGrid => Grille
-
CtrlGridExplorer => Grille - explorateur de fichiers
L'utilisation du mot-clé
Withevents permet de récupérer les événements du contrôle.
Initialisez enfin le contrôle au chargement du formulaire :
| Initialisation de l'objet contrôle |
Private Sub Form_Load()
Set oTree = CreateTGLControl(CtrlTree, Me.subFormTree)
End Sub
|
La fonction
CreateTGLControl demande 2 paramètres en entrée :
1 - Le type de contrôle à créer :
-
CtrlTree => Arbre
-
CtrlTreeExplorer => Arbre - explorateur de fichiers
-
CtrlImageList => Liste d'images
-
CtrlImageListExplorer => Liste d'images - explorateur de fichiers
-
CtrlGrid => Grille
-
CtrlGridExplorer => Grille - explorateur de fichiers
2 - Le sous-formulaire qui contient le contrôle :
C'est le nom du contrôle sous-formulaire créé précédemment.
Si vous affichez maintenant le formulaire, le contrôle est vide.
Nous allons lui ajouter quelques éléments.
V-C. Ajout d'élément au contrôle
A la suite de l'initialisation du contrôle, ajoutons un nœud racine et deux nœuds enfants.
La fonction pour ajouter un élément à l'arbre est ElementAdd.
Cette fonction renvoie un objet représentant l'élément ajouté.
| Ajout d'éléments à l'arbre |
Private Sub Form_Load()
Set oTree = CreateTGLControl(CtrlTree, Me.subFormTree)
With oTree.ElementAdd("Element Racine n°1")
oTree.ElementAdd "Element Fils 1", , .Key
oTree.ElementAdd "Element Fils 2", , .Key
End With
With oTree.ElementAdd("Element Racine n°2")
oTree.ElementAdd "Element Fils 1", , .Key
oTree.ElementAdd "Element Fils 2", , .Key
oTree.ElementAdd "Element Fils 3", , .Key
End With
oTree.Refresh
End Sub
|
Notez l'utilisation de l'instruction With.
Elle nous permet de facilement relire l'identifiant de l'élément racine créé.
Ensuite on crée les éléments fils en précisant l'identifiant Key de son élément parent.
Finalement, on utilise la fonction Refresh pour redessiner le contrôle.
V-D. Utilisation du contrôle
Affichez le formulaire : vous voyez les deux éléments racines.
Double-cliquez sur un nœud pour le dérouler ou le replier.
V-E. Gérer les événements du contrôle
Chaque contrôle expose des événements très utiles.
Les événements sont utilisables si la variable objet à été définie avec le mot-clé
WithEvents, ce que nous avons fait.
Pour accéder à ces événements, choisissez votre variable objet dans la liste déroulante en haut à gauche du module de code.
Puis sélectionnez l'événement dans la liste déroulante en haut à droite du module de code.
La procédure événementielle se crée, il suffit ensuite d'ajouter le code souhaité à l'intérieur :
| Procédure événementielle |
Private Sub oTree_ActiveElementChanged(pElement As LibTGL.CtrlTreeElement)
End Sub
|
Par exemple on affiche le texte de l'élément actif dans la barre d'état (barre en bas de l'application).
Si aucun élément n'est actif on réinitialise la barre d'état.
| Affichage de l'élément actif dans la barre d'état |
Private Sub oTree_ActiveElementChanged(pElement As LibTGL.CtrlTreeElement)
If pElement Is Nothing Then
SysCmd acSysCmdClearStatus
Else
SysCmd acSysCmdSetStatus, "Sélection de " & pElement.Text
End If
End Sub
|
VIII. Références
VI-A. Objets contrôles
VI-B. Autres objets
VI-C. Enumérations
IX. Téléchargements


Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ©
2009 Thierry GASPERMENT. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc. sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 €
de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.
Cette page est déposée.