[vb6] accés à une base de données access en ado

Accès à une base de données access en ado

Introduction

Bienvenue dans ce tutorial qui, je l'espère, vous apprendra à vous connecter à une base de données Access en utilisant l'ADO.

Petite explication rapide de l'ADO tout d'abord... ADO permet d'accéder à des données et de les manipuler. Les objets contenus dans ADO assurent la connexion à une source de données ainsi que la lecture, l'ajout, la mise à jour ou la suppression de données.
Merci Microsoft pour la définition...!

Accès à la base de données

Tout d'abord, il y a certaines références à cocher...
Dans le menu Projets - Références, Microsoft AtiveX Data Objects 2.x Library.
Ensuite, il faut établir une connexion avec la base. Pour cela, on utilise l'objet 'connection' :

   Dim con as ADODB.Connection
   Set con = New ADODB.Connection

Ensuite, il faut définir le pilote ainsi que la chaine de connexion :

con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="Chemin de la base"

Puis, ouvrir la connexion :

con.open

Si vous devez traiter une base de données assez grande et que vous ouvrez souvent votre connexion, je conseille de mettre tout ce que nous avons vu dans un module, et d'appeler à chaque fois le module. Par exemple si le module s'appelle SeConnecter :

Call module1.SeConnecter(con)

Voilà pour ce qui est de la connexion. Passons désormais à la phase de manipulation des données.

Manipulation des données

Pour cela, il faut utiliser des requêtes, de la même manière que sous Access, avec insert into, update, delete, select ... .

Tout d'abord, déclarer la variable de type Recordset :

Dim rs as ADODB.Recorset
Set rs = New Recordset

Puis pour exécuter la requête :

rs.Open " select [nomduchamp *  from [nomdelatable] where ..., con, AdopenDynamic, AdLockOptimistic

Et pour le résultat :

res = rs![nomduchamp * 

Propriétés des RecordSet

Il y a quelques propriétés à connaitre pour les résultats des Recordset :

rs.movefirst : Se place sur le premier enregistrement
rs.Movenext : Se place sur le prochain enregistrement
rs.Movelast : Se place sur le dernier enregistrement
rs.Moveprevious : Se place sur l'enregistrement précedent
rs.EOF : Fin des enregistrement (End of File)
rs.BOF : Début des enregistrements (Begin Of File)

EOF et rs.BOF s'utilisent surtout dans des boucles.
Par exemple :

While rs.EOF = False
    AddItem rs![nomduchamp *
Wend

Pour des valeurs à l'intérieur des requêtes prises dans des textbox, des listbox ou autres, si ces données sont de la forme Text, il faut les présenter ainsi :
'" & Text1.Text & "',

Pour des Numériques : " & Text1.Text & "',

et pour les dates : # " & Text1.Text & " #.

Exemple :

rs.open "select * from matable where monchamp = '" & Text1.text & "';",con, AdOpenDynamic, AdLockOptimistic

Après avoir utilisé; une requête, il faut la fermer : rs.close

Et de même pour la connexion : con.close

Et pour plus de sécurité, c'est à dire pour être sur que la connexion est bien fermée faire :
Set rs = Nothing
Set con = Nothing

Voilà donc une des manières de se connecter à une base de données Access... Il en existe bien d'autres, mais j'espère pouvoir vous les présenter plus tard... En espérant que ce tutorial vous sera utile, bonne programmation!

Tof008

Ce document intitulé « [vb6] accés à une base de données access en ado » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous