|
Cours : Visual-Basic
|
Bases de données : TD : DAO et Contrôles listes |
| Claude Gruchet |
Initiation TD4-P1
|
|
Dans ce TD, nous allons utiliser les objets de la bibliothèque DAO pour remplir une liste (contrôle ListBox) : Supposons une base Ms Access nommée Cli8.mdb contenant une table « Clients » dont la structure est la suivante :
Commencez par créer un projet "Exe Standard", nous l'appellerons "PGesCli" et le placerons dans le répertoire "C:\Mes Documents\PGesCli"
Téléchargez la base cli8.mdb qui nous servira pour l'exemple.
Utilisez Ajoutez un module au projet et nommez le "UtiGen". Nous allons y placer la procédure de démarrage "Sub Main". Tapez le code suivant dans la fenêtre du module UtiGen :
Nous utilisons un objet global « Database » (Public gdb as Database) que nous initialisons dans la « Sub Main » grâce à l’instruction « OpenDatabase ». Nous procédons ainsi pour pouvoir profiter du pointeur sur la DataBase dans l'ensemble des modules du logiciel. En déclarant le pointeur comme variable globale, nous pourrons l'utiliser partout sans avoir besoin de nous reconnecter à la base dans chaque nouveau module. La connexion à la base étant une opération coûteuse en temps de traitement, cela permet d'optimiser notre logiciel. Il faut, maintenant, dire au programme de démarrer par ce code. Appelez le dialogue "Propriétés du projet" (menu Projet/propriétés) et dans la liste "Objet de démarrage", choisissez "Sub Main" puis validez le dialogue par OK.
Ajoutez, ensuite, une feuille que vous nommerez "frmCliLst" (propriété Name). Ajoutez y une zone de liste que vous nommerez "lstCli" et un bouton de commande "cmdClose" dont le code fermera le formulaire (grâce à l'instruction Unload Me).
Pour taper le code source réalisant le traitement de l'évenement "Click" du bouton "cmdClose", double cliquez sur le bouton, cela va ouvrir le module de code du formulaire et vous placer dans la procédure "cmdClose_Click()". Entrez y le code source suivant :
Nous allons créer une procédure Sub RefreshListe() dont le travail sera d’initialiser un objet Recordset grâce à une phrase SQL que nous aurons définie auparavant. Il suffira ensuite de balayer le RecordSet pour remplir la ListBox. Toujours dans le module du formulaire "frmCliLst", tapez le code suivant :
Pour vous aider à comprendre ce genre de technique vous pouvez |