OVH Cloud OVH Cloud

Accès aux références

14 réponses
Avatar
Rinette Tahiti
Bonjour,

J'ai une application ACCESS avec des modules VisualBasic. Cette application
fonctionne normalement sur mon PC mais ne fonctionne pas sur un autre PC
ayant la même configuraton Windows et la même version d'ACCESS. Nous avons pu
déterminer qu'il s'agit d'une DLL manquante dans la bibliothèque de
références, mais nous ne pouvons pas accéder aux références sur le Pc en
défaut car l'option est grisée.

Quelqu'un pourrait-il me dire comment rendre cette option disponible sur le
PC en question afin de savoir quelle est la DLL qui pose problème ?

Merci d'avance,

Corinne

10 réponses

1 2
Avatar
Crcisu =]
Salut =)

je comprends pas trop trop ton problème ... tu utilise Visual Studio ?

Tout ce que je peux te dire c'est que tu devrai essayer de copier les dll
que tu utilise sur ton pc dans le repertoire %WinDir%System32 de l autre
pc, ca devrai suffir ...

"Rinette Tahiti" wrote:

Bonjour,

J'ai une application ACCESS avec des modules VisualBasic. Cette application
fonctionne normalement sur mon PC mais ne fonctionne pas sur un autre PC
ayant la même configuraton Windows et la même version d'ACCESS. Nous avons pu
déterminer qu'il s'agit d'une DLL manquante dans la bibliothèque de
références, mais nous ne pouvons pas accéder aux références sur le Pc en
défaut car l'option est grisée.

Quelqu'un pourrait-il me dire comment rendre cette option disponible sur le
PC en question afin de savoir quelle est la DLL qui pose problème ?

Merci d'avance,

Corinne


Avatar
Jacques93
Bonjour Rinette Tahiti,
Rinette Tahiti a écrit :
Bonjour,

J'ai une application ACCESS avec des modules VisualBasic. Cette application
fonctionne normalement sur mon PC mais ne fonctionne pas sur un autre PC
ayant la même configuraton Windows et la même version d'ACCESS. Nous avons pu
déterminer qu'il s'agit d'une DLL manquante dans la bibliothèque de
références, mais nous ne pouvons pas accéder aux références sur le Pc en
défaut car l'option est grisée.

Quelqu'un pourrait-il me dire comment rendre cette option disponible sur le
PC en question afin de savoir quelle est la DLL qui pose problème ?




Je ne connais pas la cause qui fait que le choix 'Références' soit grisé
(Droit Administrateur ? code protégé ?), mais la routine qui suit
devrait te permettre de trouver le GUID de la référence manquante
(.IsBroken = True) :

Private Sub TestRefs()
Dim Ref As Reference

On Error Resume Next
For Each Ref In References
If Ref.IsBroken Then
MsgBox Ref.Guid & " " & Ref.IsBroken
Else
MsgBox Ref.Name & vbCrLf & Ref.Guid & " " & Ref.IsBroken
End If
Next
End Sub


--
Cordialement,

Jacques.
Avatar
Rinette Tahiti
Comme vous me l'avez conseillé j'ai copié toutes les DLL utilisées dans
l'application dans le PC qui fait une erreur et le problème reste le même. En
fait le problème est plus grave que cela : l'erreur se passe sur la fonction
"Left" qui pour moi est une fonction intrinsèque de VisualBasic, non ? Nous
avons essayé de réinstaller ACCESS sans succès. Nous en sommes même arrivés à
reformater le disque dur et tout réinstaller pour voir si le problème
subsistait. Et c'est toujours pareil...
L'application fonctionne sur plusieurs PC mais pas sur celui-là.
Je sèche !!!
Auriez-vous une idée ?

Merci d'avance,

Cordialement

Corinne

"Jacques93" a écrit :

Bonjour Rinette Tahiti,
Rinette Tahiti a écrit :
> Bonjour,
>
> J'ai une application ACCESS avec des modules VisualBasic. Cette application
> fonctionne normalement sur mon PC mais ne fonctionne pas sur un autre PC
> ayant la même configuraton Windows et la même version d'ACCESS. Nous avons pu
> déterminer qu'il s'agit d'une DLL manquante dans la bibliothèque de
> références, mais nous ne pouvons pas accéder aux références sur le Pc en
> défaut car l'option est grisée.
>
> Quelqu'un pourrait-il me dire comment rendre cette option disponible sur le
> PC en question afin de savoir quelle est la DLL qui pose problème ?
>

Je ne connais pas la cause qui fait que le choix 'Références' soit grisé
(Droit Administrateur ? code protégé ?), mais la routine qui suit
devrait te permettre de trouver le GUID de la référence manquante
(.IsBroken = True) :

Private Sub TestRefs()
Dim Ref As Reference

On Error Resume Next
For Each Ref In References
If Ref.IsBroken Then
MsgBox Ref.Guid & " " & Ref.IsBroken
Else
MsgBox Ref.Name & vbCrLf & Ref.Guid & " " & Ref.IsBroken
End If
Next
End Sub


--
Cordialement,

Jacques.



Avatar
Jacques93
Bonjour Rinette Tahiti,
Rinette Tahiti a écrit :
Comme vous me l'avez conseillé j'ai copié toutes les DLL utilisées dans
l'application dans le PC qui fait une erreur et le problème reste le même. En
fait le problème est plus grave que cela : l'erreur se passe sur la fonction
"Left" qui pour moi est une fonction intrinsèque de VisualBasic, non ? Nous
avons essayé de réinstaller ACCESS sans succès. Nous en sommes même arrivés à
reformater le disque dur et tout réinstaller pour voir si le problème
subsistait. Et c'est toujours pareil...
L'application fonctionne sur plusieurs PC mais pas sur celui-là.
Je sèche !!!
Auriez-vous une idée ?

Merci d'avance,




L'erreur "Référence manquante" apparait en général a l'appel de la
première fonction VB (Left, Right, Mid ou autres...) du code.
Par contre, tu dois pouvoir exécuter le code indiqué dans mon précédent
message. Il ne plante pas même si il y a une référence manquante, mais
il faut l'appeler avant la ligne qui contient le Left.

--
Cordialement,

Jacques.
Avatar
Gloops
Bonjour,

Lors de la conversion d'une application développée sous Access 95, vers
Access 97, j'ai rencontré aussi ce problème : les fonctions Left, Right,
Mid ne sont pas reconnues.

Deux solutions :
- ou l'application doit tourner sur une seule machine, et alors il
convient d'aller ajouter VBA dans les références (attention de voir si
il n'y a pas plusieurs versions)
- ou elle va tourner sur de nombreuses machines, sur plusieurs sites, et
alors il faut préfixer systématiquement ces fonctions par VBA (sur la
base source, celle qui est développée en Access 95).

Par ailleurs le signe "&" pour la concaténation n'est pas reconnu
correctement.

Ainsi par exemple une procédure d'erreur doit se présenter comme suit :

MsgBox "Error n° " + VBA.Str$(Err.Number) + " in " + Err.Source + _
+ " : " + vbCrLf + _
Err.Description,, _
"Nom de l'application : nom de la procédure"


De la même manière, plutôt que
NomProg = "Programme" & Left(NomFic, 6)

il conviendra d'écrire :
NomProg = "Programme" + VBA.Left$(NomFic, 6)

Il faudra donc chercher dans toute la base Left, Right, Mid, Str, puis
lancer une exécution pour voir, et si on tombe sur une erreur chercher
dans toute la base la fonction non reconnue et corriger de la même
manière -toujours dans l'hypothèse d'une base qui va tourner sur de
nombreuses machines ; pour une seule ça va plus vite de déclarer la
référence VBA à la main.

________________________
Rinette Tahiti a écrit :
Comme vous me l'avez conseillé j'ai copié toutes les DLL utilisées dans
l'application dans le PC qui fait une erreur et le problème reste le même. En
fait le problème est plus grave que cela : l'erreur se passe sur la fonction
"Left" qui pour moi est une fonction intrinsèque de VisualBasic, non ? Nous
avons essayé de réinstaller ACCESS sans succès. Nous en sommes même arrivés à
reformater le disque dur et tout réinstaller pour voir si le problème
subsistait. Et c'est toujours pareil...
L'application fonctionne sur plusieurs PC mais pas sur celui-là.
Je sèche !!!
Auriez-vous une idée ?

Merci d'avance,

Cordialement

Corinne



Avatar
Gloops
Microsoft propose un outil d'installation spécifique aux applications
Access. Il faut bien vérifier dans quelles conditions il est intéressant
de s'en servir, si je me rappelle bien c'est si Access n'est pas
installé sur la machine utilisatrice.
________________________
Rinette Tahiti a écrit :
Comme vous me l'avez conseillé j'ai copié toutes les DLL utilisées dans
l'application dans le PC qui fait une erreur et le problème reste le même. En
fait le problème est plus grave que cela : l'erreur se passe sur la fonction
"Left" qui pour moi est une fonction intrinsèque de VisualBasic, non ? Nous
avons essayé de réinstaller ACCESS sans succès. Nous en sommes même arrivés à
reformater le disque dur et tout réinstaller pour voir si le problème
subsistait. Et c'est toujours pareil...
L'application fonctionne sur plusieurs PC mais pas sur celui-là.
Je sèche !!!
Auriez-vous une idée ?

Merci d'avance,

Cordialement

Corinne

"Jacques93" a écrit :

Bonjour Rinette Tahiti,
Rinette Tahiti a écrit :
Bonjour,

J'ai une application ACCESS avec des modules VisualBasic. Cette application
fonctionne normalement sur mon PC mais ne fonctionne pas sur un autre PC
ayant la même configuraton Windows et la même version d'ACCESS. Nous avons pu
déterminer qu'il s'agit d'une DLL manquante dans la bibliothèque de
références, mais nous ne pouvons pas accéder aux références sur le Pc en
défaut car l'option est grisée.

Quelqu'un pourrait-il me dire comment rendre cette option disponible sur le
PC en question afin de savoir quelle est la DLL qui pose problème ?



Je ne connais pas la cause qui fait que le choix 'Références' soit grisé
(Droit Administrateur ? code protégé ?), mais la routine qui suit
devrait te permettre de trouver le GUID de la référence manquante
(.IsBroken = True) :

Private Sub TestRefs()
Dim Ref As Reference

On Error Resume Next
For Each Ref In References
If Ref.IsBroken Then
MsgBox Ref.Guid & " " & Ref.IsBroken
Else
MsgBox Ref.Name & vbCrLf & Ref.Guid & " " & Ref.IsBroken
End If
Next
End Sub


--
Cordialement,

Jacques.





Avatar
Rinette Tahiti
Bonjour Jacques,

J'ai essayé d'appliquer le code que tu m'avais donné. Je l'ai d'abord essayé
sur un Pc avec lequel l'application fonctionne pour voir ce que cela donnait,
puis nous l'avons appliqué sur le PC en erreur. Le problème avec le PC en
erreur c'est qu'il ne me donne pas le nom des bibliothèques qui manquent !!
Lorqu'une référence est manquante j'ai un blanc à la place du nom !! Par
déduction avec le Pc qui fonctionne je peux en déduire les bibliothèques qui
manquent mais, une fois de plus, je suis coincée car je peux peux pas accéder
aux références dans VisualBasic et donc je ne peux pas refaire les liens avec
les bibliothèques.

Comment accéder à ces maudites références ?

Merci d'avance,

Cordialement

Corinne

"Jacques93" a écrit :

Bonjour Rinette Tahiti,
Rinette Tahiti a écrit :
> Comme vous me l'avez conseillé j'ai copié toutes les DLL utilisées dans
> l'application dans le PC qui fait une erreur et le problème reste le même. En
> fait le problème est plus grave que cela : l'erreur se passe sur la fonction
> "Left" qui pour moi est une fonction intrinsèque de VisualBasic, non ? Nous
> avons essayé de réinstaller ACCESS sans succès. Nous en sommes même arrivés à
> reformater le disque dur et tout réinstaller pour voir si le problème
> subsistait. Et c'est toujours pareil...
> L'application fonctionne sur plusieurs PC mais pas sur celui-là.
> Je sèche !!!
> Auriez-vous une idée ?
>
> Merci d'avance,
>

L'erreur "Référence manquante" apparait en général a l'appel de la
première fonction VB (Left, Right, Mid ou autres...) du code.
Par contre, tu dois pouvoir exécuter le code indiqué dans mon précédent
message. Il ne plante pas même si il y a une référence manquante, mais
il faut l'appeler avant la ligne qui contient le Left.

--
Cordialement,

Jacques.



Avatar
Jacques93
Bonjour Rinette Tahiti,
Rinette Tahiti a écrit :
Bonjour Jacques,

J'ai essayé d'appliquer le code que tu m'avais donné. Je l'ai d'abord essayé
sur un Pc avec lequel l'application fonctionne pour voir ce que cela donnait,
puis nous l'avons appliqué sur le PC en erreur. Le problème avec le PC en
erreur c'est qu'il ne me donne pas le nom des bibliothèques qui manquent !!
Lorqu'une référence est manquante j'ai un blanc à la place du nom !! Par
déduction avec le Pc qui fonctionne je peux en déduire les bibliothèques qui
manquent mais, une fois de plus, je suis coincée car je peux peux pas accéder
aux références dans VisualBasic et donc je ne peux pas refaire les liens avec
les bibliothèques.




Exact, lorsque les références sont rompues, le nom de la bibliothèque
n'appairait pas, mais son GUID doit apparaître, non ?

--
Cordialement,

Jacques.
Avatar
Rinette Tahiti
Merci de répondre à ma question mais le problème est plus compliqué que cela.
D'une part l'application a été développé sour Access 2000 et est utilisée
avec la même version d'Access.
D'autre part, d'autres applications Access fonctionnent correctement sur le
PC qui est en erreur.
Le problème est bien lié à une application spécifique qui aurait perdu ces
liens avec certaines bibliothèques.

Merci quand même

Corinne

"Gloops" a écrit :

Bonjour,

Lors de la conversion d'une application développée sous Access 95, vers
Access 97, j'ai rencontré aussi ce problème : les fonctions Left, Right,
Mid ne sont pas reconnues.

Deux solutions :
- ou l'application doit tourner sur une seule machine, et alors il
convient d'aller ajouter VBA dans les références (attention de voir si
il n'y a pas plusieurs versions)
- ou elle va tourner sur de nombreuses machines, sur plusieurs sites, et
alors il faut préfixer systématiquement ces fonctions par VBA (sur la
base source, celle qui est développée en Access 95).

Par ailleurs le signe "&" pour la concaténation n'est pas reconnu
correctement.

Ainsi par exemple une procédure d'erreur doit se présenter comme suit :

MsgBox "Error n° " + VBA.Str$(Err.Number) + " in " + Err.Source + _
+ " : " + vbCrLf + _
Err.Description,, _
"Nom de l'application : nom de la procédure"


De la même manière, plutôt que
NomProg = "Programme" & Left(NomFic, 6)

il conviendra d'écrire :
NomProg = "Programme" + VBA.Left$(NomFic, 6)

Il faudra donc chercher dans toute la base Left, Right, Mid, Str, puis
lancer une exécution pour voir, et si on tombe sur une erreur chercher
dans toute la base la fonction non reconnue et corriger de la même
manière -toujours dans l'hypothèse d'une base qui va tourner sur de
nombreuses machines ; pour une seule ça va plus vite de déclarer la
référence VBA à la main.

________________________
Rinette Tahiti a écrit :
> Comme vous me l'avez conseillé j'ai copié toutes les DLL utilisées dans
> l'application dans le PC qui fait une erreur et le problème reste le même. En
> fait le problème est plus grave que cela : l'erreur se passe sur la fonction
> "Left" qui pour moi est une fonction intrinsèque de VisualBasic, non ? Nous
> avons essayé de réinstaller ACCESS sans succès. Nous en sommes même arrivés à
> reformater le disque dur et tout réinstaller pour voir si le problème
> subsistait. Et c'est toujours pareil...
> L'application fonctionne sur plusieurs PC mais pas sur celui-là.
> Je sèche !!!
> Auriez-vous une idée ?
>
> Merci d'avance,
>
> Cordialement
>
> Corinne
>



Avatar
Gloops
Au fait, est-ce que c'est seulement VB6 qui fait apparaître "MANQUANT"
dans la liste sur la ligne de la référence en erreur ?
1 2