ADO et DAO

Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017 - 15 janv. 2011 à 19:30
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 16 janv. 2011 à 15:02
Bonjour,

Les Bases ADO et DAO On la même Extension --> .MDB


J'ai un projet qui affiche toutes les Bases DAO. Lorsque je donne à lire une base ADO à mon
projet, il se Plante.


Question: dans mon projet, avant qu'il se plante, je souhaiterais tester le type de Base que je vais lire. Il y a peut-êttre une instruction ?


Par avance merci
A voir également:

9 réponses

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
16 janv. 2011 à 08:57
Bonjour,

Tu confonds plusieurs choses.

1) Le type de base de données (Access, SQL Server, ...). Elle peut se reconnaître à l'extension et dans ton cas, il s'agit d'une base Access, c'est à dire que tu peux la lire avec Microsoft Access, mais pas que.

2) Le moteur utilisé pour accéder à cette base. Tu en cites 2 (ADO et DAO). en fait c'est une interface entre ton programme et la base de données. Pour les utiliser, il faut mettre dans les références de ton programme la bibliothèque qui va avec. Après il s'agit de programmation qui n'a rien à voir, mais dans les 2 cas tu pourras lire ta base .MDB.

Petite question, tu dis utiliser VB .NET, dans ce cas, tu n'as pas de question à te poser, utilises ADO, DAO est mort et enterré à peu près à l'avènement de VB6 en... 1998 je crois.

Pour ADO, en principe c'est ADO 2.0 avec .NET mais je me suis laissé dire par un des gourous qui "hante" ce site que les versions antérieures marchent très bien (jusqu'à la 2.5) avant la 2.1 était buggé.


Calade
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
16 janv. 2011 à 10:18
Merci pour ces explications.

Mon programme écrit en VB6 lit des base Microsoft Access (Référence DAO 3.5.1)

lorsque mon programme lit une base XXXXXX.mdb, il se plante si c'est une base "ADO"

Pour éviter que mon programme se plante, je souhaiterais ignorer ce type de base avant
l'OPEN

Il y a peut-êttre une instruction ?


merci encore
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
16 janv. 2011 à 10:30
Quelque chose n'est pas clair dans ton explication. A ma connaissance, une base de données est totalement indépendante de la méthode avec laquelle tu la lis.

Il y a une chose que j'ai oublié dans mon explication, c'est que ton interface (DAO ou ADO) va s'appuyer sur un moteur qui lui est totalement dépendant de ta base (Pour Access c'est le moteur Jet, pour SQL Server c'en est un autre).

Le problème vient peut-être de là (les bibliothèques en référence ne sont pas les bonnes), mais en aucun cas une base Access n'est ADO ou autre chose.

Alors regarde les références de ton programme ou envoie un morceau de code (mais pas 3 pages, les quelques lignes qui posent problème).


Calade
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
16 janv. 2011 à 11:00
Références
- Microsoft ActiveX Data Object 2.5 Library
- Microsoft DAO 3.6 Object Library
------------------------------------------------------------------------------------------

Sub OpenClose(Optional Parm1 As String)
On Error GoTo Erreur

If Parm1 = "Open" Then
Set NCONNECTION = New Connection
NCONNECTION.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & NOMDELABASE & ";"
Exit Sub
End If

On Error Resume Next
NCONNECTION.Close
Exit Sub

Erreur:
Call Erreur("CreateDB1M3", "Dao0")
Resume Next
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
16 janv. 2011 à 11:21
C'est normal, car dans ta chaîne de connexion tu imposes l'emploi de DAO.

Remplaces la par celle-ci
NCONNECTION.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & NOMDELABASE & ";"

Là tu auras le libre choix.
Par contre, j'insiste, mais n'utilises qu'une seule méthode d'accès (donc ADO) car lors de mes essais, selon que la référence ADO était avant ou après DAO, j'obtenais une erreur.
De toutes façons, je ne vois aucune raison que celle d'ajouter des sources d'erreur que de référencer les 2.


Calade
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
16 janv. 2011 à 12:05
J'ai remplacé l'accès comme tu me l'as suggéré. Maintenant, je me plante un peu partout dans
le Projet:
-----------------------------------------------------------------------------------------
Comme je ne sais que faire, à mon grand regret, je laisse tomber

Je te remercie pour ton aide. Malheureusement, je n'ai pas les compétences techniques pour
continuer


Encore Merci.
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
16 janv. 2011 à 13:15
Il ne faut pas laisser tomber comme ça. Les compétences techniques s'acquièrent justement en persévérant.

Tu dus planter un peu partout. Où ça ? Est-ce des erreurs de syntaxe ou des erreurs à l'exécution.

Essaie déjà en supprimant la référence à DAO. Même si il faut revoir un peu ton code. on est là pour t'aider.


Calade
0
Cjvg Messages postés 330 Date d'inscription mercredi 6 décembre 2000 Statut Membre Dernière intervention 26 octobre 2017
16 janv. 2011 à 14:53
C'est agréable de tomber sur des gens sympathiques comme toi. Malheureusement sur ce site, à lire les observations qui sont faites par certains, ce n'est pas courrant.

Pour ton information, j'ai 71 ans, Je ne suis pas technicien mais, malgré cela, Je me suis mis à la programmation il y a seulement quelques années. Je développe pour mon plaisir.

Durant ces quelques années, j'ai développé une bonne quarantaine d'outils orientés Aide au développement. Je suis actuellement en train de faire un package pour en faire un CD dans le but d'en faire profiter ceux qui seraient intéressés.

Si cela t'intéresse, je peux t'envoyer ma source, tu comprendras mieux mon problème. Je te joindrais même mon catalogue d'outils, tu pourras me dire ce que tu en penses. Ton avis me
sera précieux.

Si tu acceptes tu m'envois un courrier personnel en me donnant ton adresse mail et, au retour, je t'enverrais ce qui est mentionné un peu plus haut

Merci encore. A bientôt peut-être
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
16 janv. 2011 à 15:02
Ton profil n'est pas très différend du mien. Je suis développeur de formation et de métier (du moins au début de ma carrière) car j'étais dans une boîte où le mot compétences était absent du vocabulaire et le mot personne remplacé par le mot pion.

Même si en théorie on essayait de me mettre sur des postes à connotation informatique j'étais loin de faire toujours du développement.

J'ai débuté sur Cobol (gros système), puis sur DBaseIII et Clipper (sur PC) et ce dernier était génial. Je suis passé en VB6 de mon propre chef et là je suis autodidacte, mais bon en 10+ ans on arrive à faire des choses.

Tout cela à l'imparfait puisque je suis jeune retraité et là le fais du développement jusqu'à plus soif.
Clique sur l'icone de mon profil et tu pourras m'envoyer un message privé. En retour je t'enverrais mon adresse mail.


Calade
0
Rejoignez-nous