Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

roulette souris (encore et encore) - code bugé sous Access 97

6 réponses
Avatar
J'ai-Du-Bois
Bonjour =E0 tous,

Je suis conscient d'=EAtre le =E9ni=E8me novice =E0 soulever ce, pourtant
si simple, probl=E8me, et je m'en excuse.

J'esp=E8re renouveler un peu les questions qui portent sur ce sujet en
posant la mienne :

VBA me signale que le code contenu dans le module CMouseWheel est faux.
Pourquoi?

Ce que j'ai fait :

J'ai trouv=E9 sur un site exemplaire
(http://officesystem.access.free.fr/souris.htm), un code permettant de
supprimer l'usage de la souris dans un formulaire.

Comme je ne veux pas faire appel =E0 une dll ext=E9rieur, j'ai ins=E9r=E9
le code du premier site dans des modules Access, tout comme cela est
indiqu=E9 sur le site. Jusque l=E0 pas de probl=E8me.

Cependant quand je fais un copier coller du code pour le module
CMouseWheel, VBA me signale trois erreurs dans le code.

Exemple (la deuxi=E8me erreur) :

Public Sub SubClassHookForm()
lpPrevWndProc =3D SetWindowLong(frm.hwnd, GWL_WNDPROC, AddressOf
WindowProc)
Set CMouse =3D Me
End Sub

Dans ce code, =E0 la seconde ligne, sur "AddressOf WindowProc", VBA dit
qu'il voulait une expression (erreur de compilation: Attendu:
Expression)

Je suis sous Access 97, Windows 2000.

J'esp=E8re avoir =E9t=E9 assez clair.

Merci pour l'attention que vous me portez,

GDUBOIS

6 réponses

Avatar
J'ai-Du-Bois
S'il vous plait aidez moi!
Avatar
Eric
Bonjour GDUBOIS,

Tu as bien copié le code ci-dessous dans un module de *classe* et non un
module standard(encore dit de portée globale) ? Hormis ce cas de figure,
je ne vois pas, hélas, comment t'aider.

Option Compare Database
Option Explicit
Private frm As Access.Form
Private intCancel As Integer
Public Event MouseWheel(Cancel As Integer)
Public Property Set Form(frmIn As Access.Form)
Set frm = frmIn
End Property
Public Property Get MouseWheelCancel() As Integer
MouseWheelCancel = intCancel
End Property
Public Sub SubClassHookForm()
lpPrevWndProc = SetWindowLong(frm.hwnd, GWL_WNDPROC, _
AddressOf WindowProc)
Set CMouse = Me
End Sub
Public Sub SubClassUnHookForm()
Call SetWindowLong(frm.hwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub
Public Sub FireMouseWheel()
RaiseEvent MouseWheel(intCancel)
End Sub



Bonjour à tous,

Je suis conscient d'être le énième novice à soulever ce, pourtant
si simple, problème, et je m'en excuse.

J'espère renouveler un peu les questions qui portent sur ce sujet en
posant la mienne :

VBA me signale que le code contenu dans le module CMouseWheel est faux.
Pourquoi?

Ce que j'ai fait :

J'ai trouvé sur un site exemplaire
(http://officesystem.access.free.fr/souris.htm), un code permettant de
supprimer l'usage de la souris dans un formulaire.

Comme je ne veux pas faire appel à une dll extérieur, j'ai inséré
le code du premier site dans des modules Access, tout comme cela est
indiqué sur le site. Jusque là pas de problème.

Cependant quand je fais un copier coller du code pour le module
CMouseWheel, VBA me signale trois erreurs dans le code.

Exemple (la deuxième erreur) :

Public Sub SubClassHookForm()
lpPrevWndProc = SetWindowLong(frm.hwnd, GWL_WNDPROC, AddressOf
WindowProc)
Set CMouse = Me
End Sub

Dans ce code, à la seconde ligne, sur "AddressOf WindowProc", VBA dit
qu'il voulait une expression (erreur de compilation: Attendu:
Expression)

Je suis sous Access 97, Windows 2000.

J'espère avoir été assez clair.

Merci pour l'attention que vous me portez,

GDUBOIS



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
3stone
Salut,

"J'ai-Du-Bois"
[...]
Public Sub SubClassHookForm()
lpPrevWndProc = SetWindowLong(frm.hwnd, GWL_WNDPROC, AddressOf
WindowProc)
Set CMouse = Me
End Sub

Dans ce code, à la seconde ligne, sur "AddressOf WindowProc", VBA dit
qu'il voulait une expression (erreur de compilation: Attendu:
Expression)

Je suis sous Access 97, Windows 2000.

------------


Office/Access 97 ne connait pas AdressOf !

Utilise cette fonction en remplacement :
http://www.3stone.be/access/articles.php?lng=fr&pg59


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
J'ai-Du-Bois
Merci pour ta réponse!

Je vais faire mon max pour adapter le code bugé à ton code.

J'ai aussi un deuxième petit point à soulever :

Concernant les deux autres erreurs du code, pourrais tu me mettre sur
la voie pour les solutionner?

Public Event MouseWheel(Cancel As Integer)

Ici VBA attend un identificateur à la place de Event

Public Sub FireMouseWheel()
RaiseEvent MouseWheel(intCancel)
End Sub

Et ici VBA attend un numéro de ligne ou une étiquette ou une
instruction ou une fin d'instruction à la place de RaiseEvent.
Avatar
J'ai-Du-Bois
J'ai oublié de préciser :

Merci Eric et 3stone pour votre aide!!
Avatar
3stone
Salut,

"J'ai-Du-Bois"
[...]
Concernant les deux autres erreurs du code, pourrais tu me mettre sur
la voie pour les solutionner?



Perso, j'utilise selon le problème à résoudre ceci :
http://www.mvps.org/accessfr/apis/api0036.htm

ou :
http://www.3stone.be/access/articles.php?lng=fr&pg


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/