Bonjour,
Je suis pas trop bon en VBA access mais j'ai 2 ou 3 notions que j'ai appris sur le tas.
J'ai créé une base de suivi d'un parc métrologie.
Je protège la base et j’enlève les ribbon Access dès l'ouverture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DoCmd.SelectObject acTable, , True DoCmd.RunCommand acCmdWindowHide DoCmd.ShowToolbar "Ribbon", acToolbarNo
Quand on ouvre ma base il y a un formulaire avec une zone de liste déroulante (admin, métrologue, invite ) et une zone de texte password.
Le couple identifiant/password dans une table.
La base s'ouvre avec la procédure suivante :
***********************************************************************************************************
***********************************************************************************************************
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
56
57
58
59
60
61
62 Private Sub cmdLogin_Click() 'Check to see if data is entered into the UserName combo box Static intLogonAttempts As Byte If IsNull(Me.cboEmployee) Or Me.cboEmployee = "" Then MsgBox "Vous devez choisir un login.", vbOKOnly, "Required Data" Me.cboEmployee.SetFocus Exit Sub End If 'Check to see if data is entered into the password box If IsNull(Me.txtPassword) Or Me.txtPassword = "" Then MsgBox "Vous devez entrer un Password.", vbOKOnly, "Required Data" Me.txtPassword.SetFocus Exit Sub End If 'Check value of password in tblEmployees to see if this 'matches value chosen in combo box If Me.txtPassword.Value = DLookup("strEmpPassword", "tblEmployees", _ "[lngEmpID]=" & Me.cboEmployee.Value) Then lngMyEmpID = Me.cboEmployee.Value 'Close logon form and open splash screen If lngMyEmpID = 1 Then ' DoCmd.OpenForm "frm_open" DoCmd.Close acForm, "frmEmployee", acSaveNo ' ElseIf lngMyEmpID = 2 Then DoCmd.OpenForm "frm_open_Tanger" DoCmd.Close acForm, "frmEmployee", acSaveNo ' ElseIf lngMyEmpID = 4 Then ' DoCmd.OpenForm "frm_open_aide" DoCmd.Close acForm, "frmEmployee", acSaveNo ' ' Else DoCmd.OpenForm "frm_open_invites" 'DoCmd.ShowToolbar Application.CommandBars.recordselector.Name, acToolbarNo DoCmd.Close acForm, "frmEmployee", acSaveNo End If Else MsgBox "Password invalide, recommencez", vbOKOnly, _ "Invalid Entry!" Me.txtPassword.SetFocus End If 'If User Enters incorrect password 3 times database will shutdown If intLogonAttempts = 3 Then MsgBox "Vous n'avez pas d'acce, contactez la metro.", _ vbCritical, "Restricted Access!" Application.Quit ' End If intLogonAttempts = intLogonAttempts + 1 End Sub
Afin d’optimiser la base j'ai divise celle ci en 2 parties, une partie avec les formulaires, requêtes et états et l'autre que les tables (proposition Access 2016).
Il a tout de même fallu que je laisse la table tblemployees dans la première partie sinon je ne pouvais pas ouvrir le programme.
Ma première partie est donc protégé mais je me suis aperçu que le fichier où sont les tables n'est pas protégé. Donc n'importe qui peut ouvrir le fichier et aller dans toutes les tables.
J'ai essayé de protéger le fichier table en l'ouvrant en mode exclusif et en mettant un mot de passe mais la première base ne s’ouvre plus ( erreur de mot de passe) et je cherche depuis bientôt un an une solution.
Qui pourrait me dire comment je peux protéger et ouvrir mon fichier tables car ma base de suivi métrologie est très complète (jusqu'aux indicateurs) ?
Merci de votre aide.
Partager