|
Cours : Visual-Basic
|
Bases de données
Le DataControl DAO
|
| Claude Gruchet |
Initiation
|
Le DataControl DAO
Ce contrôle est présent dans les contrôles par défaut de la boîte à outils Visual-basic 6.0.
Il facilite l'utilisation de la bibliothèque de type "Data Access
Object" (Objet d'accès aux données). Cette bibliothèque est, en
fait, le moteur de Ms-Access ou "Jet Engine". L'utilisation du Data
Control DAO permet de profiter d'automatismes et d'assistants pour utiliser
des données dans vos formulaires.
Une fois utilisé dans un formulaire, le contrôle a l'aspect suivant :
Nous allons réaliser un exemple d'application de
ce contrôle et de contrôles liés mais, tout d'abord faisons un tour d'horizon
des propriétés, méthodes et événements de cet
objet :
| Propriétés |
| Connect |
Chaîne de connexion, permet la connexion en natif aux bases de type Access,
Dbase, FoxPro, Paradox ou permet de préciser la chaîne de connexion ODBC (avec ou
sans DSN).
L'utilisation d'un DSN système permet
d'améliorer la portabilité du code source et simplifie la maintenance.
Cliquez ici pour lire la page traitant des DSN système sous Windows.
Par défaut : Ms Access. (rien à faire à ce niveau si vous voulez accéder à une base Ms-Access)
|
| DataBaseName |
Nom et chemin d’accès à la base de données à laquelle vous voulez vous connecter. Utilisez le bouton aux
3 petits points pour parcourir le disque et trouver votre base de données.
|
| DefaultCursortType |
Type de curseur par défaut, permet d’utiliser des curseurs ODBC ou des curseurs côté serveur.
|
| DefaultType |
Permet
de préciser si l’on charge Jet ou si l’on travaille avec ODBC Direct. |
| RecordSetType |
Type
de jeu d’enregistrements : Table (à exclure !), Dynaset (pour les
mises à jour), SnapShot (Lecture seule, plus rapide !).
|
| RecordSource |
Nom de table, nom de requête ou
instruction SQL qui retourne les enregistrements que vous voulez gérer via le
contrôle Data.
|
|
N'hésitez pas à lire l’aide Microsoft sur ces propriétés, les deux seules valeurs indispensables pour la connexion à une base Ms Access sont
DataBaseName et RecordSource.
|
| Méthodes |
|
Refresh
|
Exécution de la phrase SQL du RecordSource. Initialise le
RecordSet. (Ouvre le jeu d'enregistrements).
|
| UpdateControls |
Transfert des contenu de champs
(collection Fields du RecordSet) vers les contrôles liés du formulaire.
Permet
l’annulation des modifications saisies par l’utilisateur.
NB : Les contrôles
liés sont ceux dont la propriété DataSource pointe sur le DataControl
et dont la propriété DataField contient le nom d'un champ du jeu d'enregistrements.
|
| UpdateRecord |
Transfert des contenu de contrôles
liés du formulaire vers les champs (collection Fields du RecordSet).
Mise à
jour de la base de données, c'est l'inverse de UpdateControls.
|
| Évènements |
| Error |
Se produit si l’événement
Validate déclenche une erreur de mise à jour. Permet le traitement de
l’erreur ou, au moins, l’affichage d’un message pour l’utilisateur. |
| Reposition |
Se produit après le changement d’enregistrement courant.
|
| Validate |
Se produit lors de la mise à
jour de l’enregistrement dans la base de données. |
Les contrôles liés sont attachés à une source de données qui est
représentée, en général, par un contrôle "data".
Les propriétés permettant de lier le contrôle à la source
de données (le contrôle "data") sont les suivantes:
|
Propriétés |
| DataSource |
Nom du contrôle "Data" qui
contient le jeu d’enregistrements à lier. |
| DataField |
Nom du champ à gérer
dans le contrôle lié. |
| DataChanged |
True si les données ont été
changées par l’utilisateur par rapport au contenu du RecordSet inclus dans le
DataControl.
Permet de demander une confirmation utilisateur s’il ferme le
formulaire sans avoir enregistré les changements.
|
Travaux dirigés
Tentons une mise en oeuvre simple du data control DAO :
|