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