DAO ==> ADO ???

Résolu
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 18 mai 2005 à 12:09
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 22 mai 2005 à 19:17
Salut,

On vient de me confier un assez gros programme (8 Mo compilé) avec une grosse base de données Access (85 Mo après compactage).

Ce qui m'embete c'est que la base est gérée en DAO 2.5/3.51 et que :
1°- Je n'y connais pas grand chose en DAO,
2°- Le DAO a été abandonné par Microsoft au profit de l'ADO il y a bien longtemps,
3°- Le DAO ne gère pas les bases ACCESS supérieures à la version 97 (d'après mes essais)

Est-il possible de passer facilement à l'ADO ou existe-t-il un moyen tout en restant en DAO de convertir la base ACCESS en version 2000 ?
Tout en sachant que pour l'instant cela fonctionne plutot bien ! Cela vaut-il le cout d'effectuer ce genre de changement ?

Merci d'avance
Bonne prog
++

11 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
22 mai 2005 à 11:28
Apparemment, l'appli a été développée en vb3 non ?


Global est plutôt remplacé par Public en vb6 mais ça ne doit pas gêner.
Dynaset et CreateDynaset sont obsolètes et doivent être remplacés par :


Global dA As Dynaset --> Public dA As RecordsetSet dA MyDA.CreateDynaset(SQLDAV) --> Set dA MyDA.OpenRecordset(SQLDAV, dbOpenDynaset)


et plusieurs autres types et fonctions DAO. Si tu prog en vb6, tu as les explications dans l'aide.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
3
hyunkel69 Messages postés 44 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 13 janvier 2006
18 mai 2005 à 16:25
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
18 mai 2005 à 22:13
Merci bien pour ce "petit" (lol) tuto.
C'est assez instructif.

Je pense qu'après ça je vais laisser tomber la migration vers ADO. Cela représenterai un travail de titan.

Par contre sais tu si le DAO peut piloter une base ACCESS 2000 ?

Merci encore
Bonne prog
++
0
hyunkel69 Messages postés 44 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 13 janvier 2006
19 mai 2005 à 09:52
Je suis pas très calé là dedans (c'était pour le boulot que j'ai eu besoin de ce tut) mais

à ma connaissaince, non il ne peut pas.
0

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

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
19 mai 2005 à 12:33
Salut,

Pour utiliser des bases Access 2000 avec la méthode DAO, il faut cocher (en vb6) la référence "Microsoft DAO 3.6 Object Library" qui repose sur "DAO360.DLL" que tu devrais trouver dans "C:\Program Files\Fichiers communs\Microsoft Shared\DAO".

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
21 mai 2005 à 13:35
Salut CanisLupus, j'ai effectivement essayer de cocher la version 3.6 de DAO. Cependant le prog ne fonctionnait plus, il semble que les déclarations soient différentes.
Saurais-tu m'en dire plus STP ?

Merci,
Bonne prog
++
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
21 mai 2005 à 14:07
Quelles déclarations par exemple ?

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
22 mai 2005 à 10:40
Global dA As Dynaset
J'obtiens un message : Type défini par l'utilisateur non défini

Si je supprime cette déclaration, VB S'arrete sur

Set dA = MyDA.CreateDynaset(SQLDAV)
J'obtiens le message : Erreur de compilation : Fonction ou interface est mentionnée avec restriction ou la fonction utilise un type Automation non géré par Visual Basic


Bonne prog
++
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
22 mai 2005 à 12:37
Ok merci pour les conseils.
Non le prog a été développé en VB5 et je l'ai repris sous VB6.
Je vais essayer avec Recordset, cela dis j'ai un peu peur de m'engager dans un boulot de titan. Cela ne risque-t-il pas de demander d'autres modifications par la suite ?

Bonne prog
++
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 18
22 mai 2005 à 18:45
En ce qui concerne DAO, sans doute. Tape "dynaset" dans l'aide de vb6 et tu auras toute la liste des objets obsolètes ainsi que par quoi on les remplace.


A part ça, reprendre un projet vb5 avec vb6 ne devrait pas être trop ardu. Tout dépend des composants et références utilisées. Normalement, en chargeant le projet la première fois, vb6 a du te signaler d'éventuels manques. S'il ne l'a pas fait c'est que ça devrait être bon.


Bon courage

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
22 mai 2005 à 19:17
Merci pour tes précieux conseils, ça à l'air de fonctionner en remplaçant Dynaset par Recordset. J'ai même pu convertir la base en Access 2000.

Merci encore.
Bonne prog
++
0