Sous d’anciennes versions de VB (4 & 5) notamment, l’accès aux données était réalisé via les modèles DAO (en série sur toutes les versions) et RDO (sur les versions Entreprise). Ces modèles savaient parfaitement exploiter le moteur de base de données propriétaire de Microsoft JET. Ainsi exploiter une base *.mdb, comme Access peut en produire, est très facile. Mais si l’on souhaite utiliser des données distantes et de formats divers, DAO et RDO vous contraignent à employer le gestionnaire ODBC. Les performances via ODBC sont moyennes et les ressources systèmes bien occupées.

Le modèle ADO (ActiveX Data Object) disponible en série sous VB6, est construit pour l’accès à tout type de base même non relationnelle, ne s’appuye pas sur ODBC mais sur une technologie d’échange entre applicatifs, l’OLE DB. Les performances sont accrues. Les bases accèdées n’ont pas à être " compatibles ADO. ". L’interface graphique de VB6 exploite au maximum ADO pour proposer des outils d’accès aux données performants : Sources de données, Formulaires de données, Rapports, Générateurs de requêtes.

 

Tableau de comparaison entre DAO, RDO et ADO :

Caractéristiques

DAO

RDO

ADO

Type de modèle Hiérarchique, déclaration et initialisation des objets relativement lourdes. Hiérarchique, déclaration et initialisation des objets relativement lourdes. Plat, déclaration et initialisation simplifiées.
Formats de bases de données Jet (.mdb), Paradox, FoxPro, Dbase, Bases fournissant un pilote ODBC. Jet (.mdb), Paradox, FoxPro, Dbase, Bases fournissant un pilote ODBC. Théoriquement tous les types sont supportés.
Exploitation des ressources systèmes Plus importante Plus importante Plus légère.
Outils d’interface Contrôle DATA Contrôle DATA

Concepteur RDO Data

Concepteurs Data Environment, Data Report, Fenêtre de données, Concepteur de requêtes.
Bibliothèque à référencer Microsoft DAO 3.51 Object Library Microsoft Remote Data Object 2.0 Library Microsoft ActiveX Data Objects 2.0 Library

 

Le modèle ADO :

On parle d’un modèle à plat et non hiérarchique. Cela signifie que vous n’êtes pas forcé de déclarer explicitement certains objets avant d’autres. Par exemple avec DAO, il faut créer un objet Database pour pouvoir ensuite, grace à ses méthodes, créer un objet Recordset ou TableDef. Sous ADO, vous pouvez manipulez indépendamment un objet Connection ou Recordset ou Command.

Avant d’exploiter le modèle A.D.O., il faut y faire référence dans Projet-Références, et cocher " Microsoft ActiveX Data Objects Library ".

La connexion :

Vous pouvez initier une connexion à l’aide de l’objet Connection.

Déclaration : Private Cnx as Connection

Initialisation : Set Cnx = New Connection

Propriétés à renseigner :

.Provider = " Nom du fournisseur OLEDB "

.ConnectionString = " Infos sur la base et l’utilisateur "

Méthodes de connexion :

.Open

.Close

L’objet Connection peut générer des évènements si il est déclaré avec le mot clé WithEvents :

Private WithEvents Cnx as Connection

L’objet Recordset :

Il donne l’accès aux données. Les enregistrements stockés sont issus d’un objet Connection existant ou d’un objet Command ou encore d’une connexion implicite.

Déclaration : Private Rs as Recordset

Initialisation : Set Rs = New Recordset ou Set Rs = ObjetCommand.Execute

Propriétés importantes :

.ActiveCommand

.ActiveConnection

.CursorType ‘Indique où est stocké le groupe d’enregistrements

.CursorType ‘Indique la nature des actions possibles sur les engts, lecture, modif, etc…

Méthodes :

.Open

.Close

.Save

.MoveNext, .MovePrevious, .MoveLast, .MoveFirst pour les déplacements

.Addnew pour créer un nouvel enregistrement

.Update Pour la mise à jour de l’enregistrement

L’objet Command :

Il est utilisé pour générer une requête auprès d’une connexion. Utilisez un objet Command pour executer des mises à jours à l’aide de syntaxes SQL.

Déclaration : Private Cmd as Command

Initialisation : Set Cmd = New Command

Propriétés :

.ActiveConnection

.CommandText ‘La syntaxe SQL

.CommandType ‘Un objet command peut être une procédure stockée ou une requête temporaire ou encore une table.

Méthodes :

.Execute

.Cancel

Créer une fenêtre de consultation et M.A.J. de données :

Se connecter :

Il est toujours possible d’exploiter le contrôle DATA. L’implantation de ce contrôle sur une feuille VB entraine l’inscription automatique de la bibliothèque de type " Microsoft DAO 3.51 Object Library ".

Profitez donc de VB6 et ADO, utilisez un concepteur Data Environment. Il s’agit d’une interface graphique qui vous épargne la mise au point d’un code de connexion. Ce code sera implanté lors de la compilation par le concepteur et non par vous.

1.Dans le menu Projet, demandez l’ajout d’un concepteur Data Environment. Ceci inscrit immédiatement les bibliothèques " Microsoft Data Environment Instance 1.0 " et  " Microsoft ActiveX Data Objects Library 2.0 " dans les références de votre projet.

2.Assurez que la fenêtre du concepteur Data Environment est sélectionnnée et nommez le concepteur " DE ". Le nom du concepteur sera utilisé comme nom de source de données pour tous les contrôles dits " dépendants ".

3.  " DE " est votre source, mais les données sont fournies par des connexions. Sélectionnez l’objet Connection1. Nommez le Cnx (c’est plus court…). Faîtes un clic bouton droit dessus et demandez " Propriétés ". Une boîte de dialogue vous demande :

Le fournisseur OLE DB. Il s’agit d’une bibliothèque de paramètres permettant d’exploiter la technologie OLE DB avec le type de base que vous souhaitez accèder. Ici, choisissez " Microsoft Jet 3.51 OLE DB Provider ".

Le nom de la base : Utilisez le bouton de parcours (…) pour désigner la base Nwind.mdb présente dans le dossier de VB. Cliquez ensuite sur le bouton " Tester la connexion " pour vérifier.

Vous disposez désormais d’un accès à une base, mais vous n’avez pas encore de données.

4.Extraire des données avec une " Commande ". Cliquez sur le bouton " Nouvelle commande ". Définissez ses propriétés à l’aide de la commande propriété du menu contextuel. Dans l’onglet Général, choisir type d’objet Table et Nom d’objet Clients.

Validez.

La fenêtre du DE vous affiche désormais une connexion, une commande et tous ses champs.

5.Créer la feuille de données. Faîtes glisser les champs de la commande de la fenêtre DE vers une feuille VB. Des texboxes apparaissent. Examinez leurs propriétés DataSource (=DE), DataMember (=Command1) et DataField (=NomDuChamp).

Vous avez désormais une fenêtre de consultation des enregistrements de la table clients. Mais pour progresser entre les enregistrements, il vous faut des boutons qui exploiteront les méthode de l’objet DE et de son sous objet rsClients qui correspond au jeu des enregistrements issus de l’objet commande " Command1 ".

Ex : DE.rsCommand1.MoveNext ‘pour se déplacer vers le prochain.