cs_elchico
Messages postés13Date d'inscriptionmercredi 13 mars 2002StatutMembreDernière intervention 2 novembre 2006
-
7 mars 2006 à 22:07
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 2006
-
9 mars 2006 à 21:09
Bonjour à tous,
Un gros problème se pose chez certains de mes clients (seulement 3 sur plusieurs milliers mais bon...).
Sur un simple :
"While not r.eof"
R étant un DAO.Recordset, ils recoivent un message d'erreur 48 - Erreur au chargement de la DLL.
J'ai tout essayé, tout d'abord j'ai essayé de reproduire le problème sur l'un de mes PC et je n'y arrive pas... Ensuite réinstallation MDAC... Rien n'y fait. Le DAO se connecte sur une base Access. Cette même base access ne pose pas de problème chez moi avec exactement le même code...
J'y perd mon latin... si vous aviez une idée...
Merci d'avance à tous !
A voir également:
Microsoft dao 3.6 object library erreur de chargement de la dll
cs_elchico
Messages postés13Date d'inscriptionmercredi 13 mars 2002StatutMembreDernière intervention 2 novembre 2006 9 mars 2006 à 20:47
Bonjour,
Juste pour info, j'ai identifié le problème (un peu par hasard je dois bien le dire...).
J'avais dans mes déclarations cela :
Dim R, R2 as DAO.Recordset
Voilà... Grave erreur, que normalement je ne fait jamais sauf là...
Je ne comprend toujours pas pourquoi ca marche chez 99% de mes clients mais bon... Si ca vous arrive vous saurez d'où ca vient. Donc rien de tel que :
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 7 mars 2006 à 23:02
Salut,
As-tu fait une install en règle chez tes clients ?
Surtout en DAO, peut-être qu'ils n'ont pas la bonne version de DLL d'installée ?
Normalement, ces dll se touvent dans C:\Program Files\Fichiers communs\Microsoft Shared\DAO : dao350.dll ou dao360.dll
Ou peut-être manque-t-il une dépendance (genre vbar332.dll)
A savoir, DAO ne peut être utilisé pour des bases access converties en version supérieure à 2002 ou 2003.
cs_elchico
Messages postés13Date d'inscriptionmercredi 13 mars 2002StatutMembreDernière intervention 2 novembre 2006 7 mars 2006 à 23:17
Hello,
Tout d'abord merci pour ta réponse.
L'installation se fait dans les règles avec un installshield qui fonctionne puisque 99,9% de mes clients ne rencontrent pas ce problème. La base de données est au format access 2000. L'un de mes clients a essayé de télécharger le MDAC depuis chez Microsoft, le message lui a indiqué qu'il était déjà à jour...
Je lui ai demandé de tester la ré-installation de Jet en attendant mais je n'y crois pas beaucoup...
C'est extraordinaire quand même... Je peux instancier un recordset, me connecter à la base de données etc... La seule instruction qui plante c'est :
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 8 mars 2006 à 03:05
salut,
pourquoi ces 3 là et pas les autres, pourquoi juste çà, aucune idée....
par contre tu peux essayer (à moins que ce ne soit déjà le cas) de faire un r.movelast puis un r.movefirst avant ton while.
DAO (3.6) est déconseillé puisqu'il n'est plus mis à jour depuis 98,
mais c'est aussi ce que j'utilise. (faut pas cracher dessus, VB6 n'est
plus tout jeune non plus ^^)
tu peux aussi peut-être ajouter une référence : Microsoft Data Formatting Object Library 6.0 (SP6) [MSSTDFMT.DLL]
bon courage
PCPT [AFCK]
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_elchico
Messages postés13Date d'inscriptionmercredi 13 mars 2002StatutMembreDernière intervention 2 novembre 2006 8 mars 2006 à 11:05
J'ai l'intention à plus ou moins long terme de faire évoluer le logiciel en modifiant mon code pour utiliser l'ADO. Par contre pas question pour le moment de passer en .net. Je passerais ces applications quand on me donnera un assistant qui permet de migrer celles-ci sans (ou presque d'intervention humaine)... J'ai essayé avec les assistants donnés par .net, j'ai une erreur critique dès le premier formulaire (peut-être à cause de DAO)...
Mais bon, ce n'est pas vraiment le sujet, je m'égare désolé :)
Je vais essayer de mettre un movelast & un movefirst avant mais franchement je n'y crois pas trop. Ce message d'erreur de chargement de DLL m'évoque plutôt une DLL endommagée... Le problème étant que la réinstallation du MDAC ne donne rien... Hors dans cette instruction "While not r.eof" si ce n'est pas le DAO qui est en cause c'est le "While not", ce qui métonnerais vu le nombre d'instructions passées avec succès avant d'arriver à cette ligne...
En presque 10 ans d'expérience en VB, j'ai jamais vu ca... jamais (et pourtant j'en ai vu des trucs bizarres avec notre VB adoré :))
En tout cas merci pour vos réponses, si vous avez des idées supplémentaires je suis preneur...
cs_elchico
Messages postés13Date d'inscriptionmercredi 13 mars 2002StatutMembreDernière intervention 2 novembre 2006 8 mars 2006 à 11:45
J'avais bien compris, j'avais besoin de me soulager sur .net ()
Pour le MDAC, installshield me demande de l'intégrer dans mon setup. D'après mes souvenirs il est installé par défaut avec XP mais bon dans le doute !
Je vais essayer ta technique, je renvoi l'exe à mon client et je te tiens au courant.
En tous cas merci beaucoup pour votre aide à tous, c'est un pur bonheur de se sentenir soutenu pendant ces phases de délire
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200620 9 mars 2006 à 21:09
Effectivement l'erreur peut venir de là.
En VB6, Dim R, R2 as DAO.Recordset ne veut pas dire que R et R2 sont des recordset mais que R est un Variant et R2 un recordset (je ne veux pas t'apprendre quelque chose mais il est bon de le rappeler pour les futurs lecteurs de ce topic).
Le pourquoi ça fonctionnait pour 99% et pas pour les autres, sans doute un problême de dll ou de run-time vb ?