OVH Cloud OVH Cloud

- Démarrage avec Shift et macro -

1 réponse
Avatar
Stéphane
Bonjour,

Ci-joint la proc=E9dure qui normalement sert =E0 inhiber la=20
touche "Shift", mais je n'arrive pas (malgr=E9 les bonnes=20
=E2mes de ce forum)=E0 l'int=E9grer dans une autre base :

-----------------------------------------------------------
Option Compare Database
Option Explicit
-----------------------------------------------------------
Sub D=E9sactiverMaj()
Dim blnAutoriserMaj As Boolean

' Si blnAutoriserMaj vaut False, la touche [Maj] sera=20
d=E9sactiv=E9e.
' Si blnAutoriserMaj vaut True, la touche [Maj] sera=20
activ=E9e.
blnAutoriserMaj =3D False
=20
ModifiePropr "AllowBypassKey", dbBoolean,=20
blnAutoriserMaj
If blnAutoriserMaj Then
MsgBox "La touche [Maj] est activ=E9e. Fermez la=20
base et r=E9ouvrez-la pour tester."
Else
MsgBox "La touche [Maj] est d=E9sactiv=E9e. Fermez la=20
base et r=E9ouvrez-la pour tester."
End If
End Sub
-----------------------------------------------------------
Function ModifiePropr(chNomPropri=E9t=E9 As String,=20
varTypeProp As Variant, varValeurProp As Variant) As=20
Integer
Dim bds As Database, prp As Property
Const conErreurPropNonTrouv=E9e =3D 3270

Set bds =3D CurrentDb
On Error GoTo Change_Err
bds.Properties(chNomPropri=E9t=E9) =3D varValeurProp
ModifiePropr =3D True

Change_Sortie:
Exit Function

Change_Err:
If Err =3D conErreurPropNonTrouv=E9e Then ' Propri=E9t=E9=20
non trouv=E9e.
Set prp =3D bds.CreateProperty(chNomPropri=E9t=E9,=20
varTypeProp, varValeurProp)
bds.Properties.Append prp
Resume Next
Else
' Erreur inconnue.
ModifiePropr =3D False
Resume Change_Sortie
End If
End Function
-----------------------------------------------------------

Voici mon 1er pb : lorsque je la transf=E8re dans une autre=20
base, il y a une erreur de compil (dbBoolean en bleu - Sub=20
D=E9sactiverMaj() en jaune avec un message "variable non=20
d=E9finie"), alors que dans la base d'origine tout=20
fonctionne correctement.

Le 2i=E8me pb : associer la proc=E9dure =E0 une macro. Je sais=20
qu'il faut utiliser la fonction "Ex=E9cuterCode", mais o=F9=20
est le nom de la fonction ????? J'ai beau essayer=20
d=E9sactiverMaj() ou le nom du module (AllowBypassKey)mais=20
rien n'y fait.

Merci de bien vouloir m'aider car "patauge".

1 réponse

Avatar
Raymond
Bonjour.

je vien de transférer ton code sous 2000, il n'y a aucun problème, tout
fonctionne. vérifie tes lignes.

en macro sur executercode, en bas tu indiques le nom de la fonction et tu
peux cliquer sur le bouton (...) générateur pour rechercher la fonction.
Mais attention, il faut que ta fonction soit Public et qu'elle se trouve
dans un module standard.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Stéphane" a écrit dans le message de
news:01b201c36e65$6738e500$
Bonjour,


Voici mon 1er pb : lorsque je la transfère dans une autre
base, il y a une erreur de compil (dbBoolean en bleu - Sub
DésactiverMaj() en jaune avec un message "variable non
définie"), alors que dans la base d'origine tout
fonctionne correctement.

Le 2ième pb : associer la procédure à une macro. Je sais
qu'il faut utiliser la fonction "ExécuterCode", mais où
est le nom de la fonction ????? J'ai beau essayer
désactiverMaj() ou le nom du module (AllowBypassKey)mais
rien n'y fait.

Merci de bien vouloir m'aider car "patauge".