OVH Cloud OVH Cloud

pb déclare fonction

2 réponses
Avatar
studio102
bonjour à tous

Je veux utiliser des fonctions d'une dll externe.
si j'écris :

Private Declare Function MAFONCTION Lib "MADLL.dll" (ByVal pszChemin As
String) As Long

Ceci fonctionne parfaitement.

Désirant n'effectuer cette déclaration qu'une fois pour le projet, j'ai
remplacé "Private" par "Public", comme indiqué dans l'aide...

Dans ce cas, j'obtiens systématiquement une erreur et le programme ne
fonctionne plus :

Visual Basic for Applications (VBA) a rencontré un problème en essayant
d'accéder à une propriété ou à une méthode

Je n'arrive pas à comprendre d'où vient le problème.

Quelqu'un peut-il m'aider ?

pour info, ces déclarations sont placées sur le premier formulaire ouvert
(le menu principal) après "Option Compare Database"

Merci d'avance pour vos suggestions
--
studiodev

2 réponses

Avatar
Pierre CFI [mvp]
bonjour
tout ce qui doit etre public est mieux dans un module indépendant, pas dans
le module de classe d'un form

--
Pierre
MVP microsoft Access
Plein de choses à voir ici :
http://users.skynet.be/mpfa/

"studio102" a écrit dans le message de
news:
bonjour à tous

Je veux utiliser des fonctions d'une dll externe.
si j'écris :

Private Declare Function MAFONCTION Lib "MADLL.dll" (ByVal pszChemin As
String) As Long

Ceci fonctionne parfaitement.

Désirant n'effectuer cette déclaration qu'une fois pour le projet, j'ai
remplacé "Private" par "Public", comme indiqué dans l'aide...

Dans ce cas, j'obtiens systématiquement une erreur et le programme ne
fonctionne plus :

Visual Basic for Applications (VBA) a rencontré un problème en essayant
d'accéder à une propriété ou à une méthode

Je n'arrive pas à comprendre d'où vient le problème.

Quelqu'un peut-il m'aider ?

pour info, ces déclarations sont placées sur le premier formulaire ouvert
(le menu principal) après "Option Compare Database"

Merci d'avance pour vos suggestions
--
studiodev


Avatar
Jessy Sempere [MVP]
Bonjour

Tu dois le placer dans un module standard de ta base de donnée,
les modules des formulaires, sont des modules de classe, qui sont
liés au formulaire, ce sont des modules "privés".

Du coup, ça beug... dire à une procédure d'être public dans un
module privé, c'est pas idéal... ;-)

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"studio102" a écrit dans le message de
news:
bonjour à tous

Je veux utiliser des fonctions d'une dll externe.
si j'écris :

Private Declare Function MAFONCTION Lib "MADLL.dll" (ByVal pszChemin As
String) As Long

Ceci fonctionne parfaitement.

Désirant n'effectuer cette déclaration qu'une fois pour le projet, j'ai
remplacé "Private" par "Public", comme indiqué dans l'aide...

Dans ce cas, j'obtiens systématiquement une erreur et le programme ne
fonctionne plus :

Visual Basic for Applications (VBA) a rencontré un problème en essayant
d'accéder à une propriété ou à une méthode

Je n'arrive pas à comprendre d'où vient le problème.

Quelqu'un peut-il m'aider ?

pour info, ces déclarations sont placées sur le premier formulaire ouvert
(le menu principal) après "Option Compare Database"

Merci d'avance pour vos suggestions
--
studiodev