OVH Cloud OVH Cloud

Question pour 1 champion

1 réponse
Avatar
B
Mesdames, Messieurs,

Voici la question :

J'ai réalisé une Application en mdb sur un PC avec :
Windows XP et Office XP ( Access 2002 et Word 2002).
Cette application fonctionne sans aucun problème.
J'ai voulu installer cette Application sur un autre poste sous Windows 2000
pro.
Comme ça plantait ou ne marchait pas correctement selon l'utilisation, j'ai
désinstallé et réinstallé Office ( avec Access 2002 et Word 2002 dont j'ai
absolument besoin dans mon Appli).
Comme ça ne fonctionnait toujours pas, je suis allé voir, sur les conseils
pris sur ce NG, si les références étaient correctes.
Effectivement la référence Microsoft ActiveX Data Objects n'était pas la
même (2.1 au lieu de 2.5).
J'ai donc installé la bonne référence ( fichier msado25.tlb ).
LA question : TOUTES choses étant égales, ça marche sur un PC et PAS sur
l'autre, OU est le problème ?

Merci de vos suggestions.
@ +
b(°!°)rbbu

1 réponse

Avatar
Benoit Compoint [MS]
Bonsoir,

Je n'ai pas eu le temps de lire toutes les réponses qui vous ont déjà été
données, puisque vous avez posé cette question plusieurs fois.

Cependant je vous rappelle que pour augmenter la portabilité de votre
application Access 2002 qui pilote via automation Excel et Word, vous
devriez utiliser la technique dite "late binding" au lieu d'utiliser la
technique "early binding".
Pour plus d'informations, consultez la page Web suivante :
http://support.microsoft.com/default.aspx?scid=KB;EN-US;247579

En fait j'ai noté dans votre code source que vous panachiez l'usage du late
binding et du early binding pour une même référence (Word par exemple).

Ainsi j'ai vu votre code source ci-dessous :
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")

En early binding classique, le code devrait être :
Dim wdApp As Word.Application
Set wdApp = new Word.Application

Mais je vous recommande de décocher la référence vers Word afin d'utiliser
le "late binding" :
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")

D'autre part je vous conseille de décocher la référence vers MSO.DLL si elle
est inutile, et dans le cas contraire de comparer la version de cette DLL
sur les deux postes concernés.

Pour isoler le problème vous devriez tester sur le poste cible Windows 2000,
dans une base vierge générée et compilée sur votre poste (puis
éventuellement recompilée sur le poste cible), une petite partie de votre
code VBA qui piloterait Word en ne conservant que la référence vers Word
(outre les références Access et VBA).
Puis recommencer de même avec une petite partie de votre code VBA, dans une
autre base vierge, qui piloterait Excel en ne conservant que la référence
vers Excel (outre les références Access et VBA).
Puis recommencer de même avec une petite partie de votre code VBA, dans une
autre base vierge, qui utiliserait MSO.DLL en ne conservant que la référence
vers MSO.DLL (outre les références Access et VBA).

Enfin je vous rappelle que si Word (par exemple) n'est pas correctement
installé sur une station de travail, il est normal d'obtenir des erreurs
lorsque vous tenter de le piloter via Automation. Quand vous comparez sur
deux postes le fonctionnement d'Access 2002 avec Excel 2002 et Word 2002, il
est important de vérifier les versions exactes d'Office XP (quels Service
Packs avez-vous installé pour Office XP ?) sur ces deux postes.

Benoit Compoint


"" wrote in message
news:
Mesdames, Messieurs,

Voici la question :

J'ai réalisé une Application en mdb sur un PC avec :
Windows XP et Office XP ( Access 2002 et Word 2002).
Cette application fonctionne sans aucun problème.
J'ai voulu installer cette Application sur un autre poste sous Windows
2000

pro.
Comme ça plantait ou ne marchait pas correctement selon l'utilisation,
j'ai

désinstallé et réinstallé Office ( avec Access 2002 et Word 2002 dont j'ai
absolument besoin dans mon Appli).
Comme ça ne fonctionnait toujours pas, je suis allé voir, sur les conseils
pris sur ce NG, si les références étaient correctes.
Effectivement la référence Microsoft ActiveX Data Objects n'était pas la
même (2.1 au lieu de 2.5).
J'ai donc installé la bonne référence ( fichier msado25.tlb ).
LA question : TOUTES choses étant égales, ça marche sur un PC et PAS sur
l'autre, OU est le problème ?

Merci de vos suggestions.
@ +
b(°!°)rbbu