Bonjour,
Voilà, mon appli est terminée.. J'ai donc voulu créer un fichier .mde pr éviter que les utilisateurs ne puissent modifier mon code..
Jusque là pas de problème!
Lorsque j'ouvre le fichier .mde, je ne rencontre pas de problème particulier.. sauf lorsque j'essaie d'ouvrir un état![]()
J'ai alors l'erreur suivante :
Après tatonnement, j'en suis arrivée à la conclusion que l'erreur provenait de ma fonction ModifierMarge..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 L'expression SurClicEntrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. L'action OpenForm a été annulée. *Le résultat de l'expression n'est pas le nom d'une macro, le nom d'une fonction définie par l'utilisateur ou [EventProcedure]. *Une erreur a peut-être été commise lors de l'évaluation d'une fonction, d'un événement ou d'une macro.
Or cette fonction fonctionne parfaitement lorsque je l'utilise avec le fichier .mdb..
Ma fonction est déclarée dans un module, et se présente comme cela :
A votre avis, d'où peut venir ce problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 Public Type str_PRTMIP strRGB As String * 28 End Type Public Type type_PRTMIP lngMargeGauche As Long lngMargeHaut As Long lngMargeDroite As Long lngMargeBas As Long lngDonnéesSeulement As Long lngLargeurCol As Long lngHauteurCol As Long lngTaillePapier As Long lngNbreCol As Long lngEspacementCol As Long lngEspacementLigne As Long lngOrientation As Long lngImpressionRapide As Long lngFeuilleDonnées As Long End Type Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Public Const SC_CLOSE = &HF060& Public Const MF_BYCOMMAND = &H0& Public Function ModifierMarges() Dim PrtMipString As str_PRTMIP Dim PM As type_PRTMIP Dim rpt As Report Dim strName As String strName = "Etat_Planning" ' Ouverture de l'état en mode Création référencement de la variable objet de l'état. DoCmd.Echo False DoCmd.OpenReport strName, acDesign Set rpt = Reports(strName) ' Assignation des propriétés actuelles de mise en page de l'état. PrtMipString.strRGB = rpt.PrtMip ' Assignation des nouvelles marges dans la zone de mémoire de travail. LSet PM = PrtMipString ' On fixe les valeurs des nouvelles marges PM.lngMargeGauche = 0.2 * 1440 PM.lngMargeHaut = 0.2 * 1440 PM.lngMargeDroite = 0.2 * 1440 PM.lngMargeBas = 0.2 * 1440 ' Mise à jour des nouveaux réglages. LSet PrtMipString = PM rpt.PrtMip = PrtMipString.strRGB ' Fermeture de l'état modifié en sauvegardant les modifications, et affichage avant impression DoCmd.Close acReport, strName, acSaveYes DoCmd.OpenReport strName, acViewPreview DoCmd.Echo True End Function
D'autre part, je précise que j'utilise le fichier .mde dans le but d'interdire l'accès à mon module .. En effet, j'ai crée une sécurité au niveau utilisateur; cependant dans le fichier .mdb, je ne peux pas gérer les droits d'accès sur les modules (comme on peut le faire avec les tables, formulaires,etc..)
Si qqn sait donc comment interdire l'accès à un module dans un fichier .mdb, cela pourrait aussi m'intéresser..
Je vous remercie d'avance pr vos réponses,
et bravo à ceux qui ont eu le courage de lire ce long message!!
Partager