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 definition...!).
Maintenant que les presentations sont faites, passons à l'accés à la base de données... Tout d'abord, il y a certaines references à 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'appele SeConnecter :
Call module1.SeConnecter(con)
Voilà pour ce qui est de la connexion, passons désormais à la phase de 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 executer la requête :
rs.Open " select [nomduchamp] from [nomdelatable] where ..., con, AdopenDynamic, AdLockOptimistic
Et pour le résultat : res = rs![nomduchamp]
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)
rs.EOF et rs.BOF s'utilise surtout dans des boucles. Par exemple :
While rs.EOF = False
list1.AddItem rs![nomduchamp]
Wend
Pour des valeurs à l'interieur des requetes prises dans des textbox, des listbox ou autres, si vces données sont de la forme Text, il faut les presenter 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 requete, il faut la fermer... : rs.close
Et de meme pour la connexion : con.close
Et pour plus de sécurité, c'est à dire pour être sur que la connexion est bien fermé, 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'espere pouvoir vous les présenter plus tard... En esperant que ce tutorial vous sera utile, bonne programmation!
Tof008