Provider pour accès aux bases access .accdb via ado

damedom41 Messages postés 79 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 août 2014 - 7 mars 2011 à 13:34
damedom41 Messages postés 79 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 août 2014 - 8 mars 2011 à 13:29
Bonjour,

J'ai développé un certain nombre d'applications en Access 2003, en utilisant la méthode DAO.
Je dois faire une migration vers ACCESS 2010, en utilisant la méthode ADO.
Pour accéder à des bases de type TOTO.MDB, j'utilise comme provider Microsoft.Jet.OLEDB.4.0, et j'ajoute la référence Microsoft ActiveX Data Objects 2.8 Library, et cela fonctionne.
En revanche, pas moyen d'accéder ainsi à des bases de type TOTO.accdb.
Pouvez-vous m'aider ?



Damedom Sologne

4 réponses

c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
8 mars 2011 à 10:09
Bonjour
Il faut utiliser un autre provider sous 2010

Provider = Microsoft.Ace.OLEDB.12.0;

Pour éventuellement le télécharger, microsoft le nomme :
accessdatabaseengine

Bonne journée
0
damedom41 Messages postés 79 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 août 2014
8 mars 2011 à 12:14
Merci mille fois.
C'est vous qui êtes un
Ca marche super bien.
Pour information, on peut utiliser dans le même code les deux providers : un pour chaque type de base accédée.
Et c'est génial.

Damedom Sologne
0
c148270 Messages postés 303 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 3 octobre 2013 1
8 mars 2011 à 12:57
Oui on peut utiliser les deux mais il faut qualifier car les mêmes fonctions existent dans les deux.
Par exemple : recordset
Il faut donc definir DAO.recordset ou ADODB.recordset
De même si l'on utilise ADODB et ADOR la fonction recordset existe dans les deux

Bonne journée
0
damedom41 Messages postés 79 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 2 août 2014
8 mars 2011 à 13:29
Il s'agissait pour moi d'utiliser ADO dans les deux cas, mais de pouvoir acceder à des bases de type mdb et des bases de type accdb.
Je n'ai testé pour l'instant que le movefirst, en déclarant les recordsets de la même manière, à savoir :
[i]dim dbrec as adodb.recordset
dim dbcnx as adodb.connection/i
puis
ouverture de la base via dbcnx
[i]set dbrec as new adodb.recordset
dbrec.open ("select * from TABLE", dbcnx,,, adCmdTest)
dbrec.movefirst/i
Evidemment le provider n'est pas le même pour les deux connexions.

J'enchaîne via un formulaire l'accès aux deux bases (mdb et accdb) , et ça marche.
Je vais dans les semaines qui viennent tester plus avant les différentes fonctionnalités, et poster les éventuels problèmes rencontrés (et peut-être même les solutions si je les trouve).

Damedom Sologne
0
Rejoignez-nous