IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

Ouvrir fichier tables apres division en 2 fichiers [AC-2016]


Sujet :

Sécurité

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Ouvrir fichier tables apres division en 2 fichiers
    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.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Je ne l'ai jamais fait (perso, je protége mes BD par le reseau : tu as acces au repertoire, tu as acces a l'appli et aux donnees) mais ceci semble repondre a ta demande.

    Re-linking to a password-protected database
    https://www.datawright.com.au/access...ed_backend.htm

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Je recentre ma demande
    J'ai essayé le méthode que tu me propose, voici les images : Nom : Diapositive1.JPG
Affichages : 182
Taille : 45,8 Ko Nom : Diapositive1.jpg
Affichages : 168
Taille : 64,6 Ko Nom : Diapositive3.JPG
Affichages : 161
Taille : 75,6 Ko Nom : Diapositive4.JPG
Affichages : 189
Taille : 40,6 Ko

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2014
    Messages : 14
    Points : 11
    Points
    11
    Par défaut J'ai la solution : dorsale et frontale
    Bonjour à tous,

    En fait je viens de comprendre que je demande une solution de protection sur "base frontale dorsale Access 2010"

    Bien entendu on peux protéger la base dorsale en l'ouvrant en mode exclusif et en chiffrant celle ci par MDP (mot de passe).

    Mais pour ma part la base frontale où sont les formulaires et requetes est utilisée par plusieurs personnes.

    L'idée est donc de créer un formulaire d'ouverture avec une table login/mdp comme :
    Nom : Diapositive1.JPG
Affichages : 179
Taille : 71,8 Ko Nom : Diapositive2.JPG
Affichages : 208
Taille : 39,8 Ko

    Ensuite on mets ce code dans sur activation du formulaire login :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Form_Current()
    DoCmd.SelectObject acTable, , True
    DoCmd.RunCommand acCmdWindowHide
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
    End Sub
    Puis ce code sur la combo employé (menu déroulant) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub cboEmployee_AfterUpdate()
    'After selecting user name set focus to password field
    Me.txtPassword.SetFocus
    End Sub
    Et sur le bouton clic on met ce code :

    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
    63
     
    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
    Là on a protégé la frontale mais pas la dorsale.:mouarf:

    Alors l’idée est venue ainsi, si je fais pareil pour sécuriser la dorsale parce que si ne mets un MDP en mode exclusif sur celle ci j'ai un bug en ouverture.

    J'ai donc ouvert la base dorsale ( où sont les tables) en mode exclusif et j'ai créé un formulaire login et une table login. Puis j'ai protégé les codes VBA de chaque fichier.

    Nom : Diapositive3.JPG
Affichages : 159
Taille : 71,7 Ko Nom : Diapositive4.JPG
Affichages : 164
Taille : 69,3 Ko


    Ensuite j'ai mis le code sur activation du formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Form_Current()
    '
    DoCmd.SelectObject acTable, , True
    DoCmd.RunCommand acCmdWindowHide
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
    '
    End Sub
    Puis sur l’événement MAJ de la combo "Choisissez votre login :" du formulaire (de façon a aller directement au password) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub cboEmployee_AfterUpdate()
    'After selecting user name set focus to password field
    Me.txtPassword.SetFocus
    End Sub
    Sur le formulaire principal je bloque les access ainsi :
    - Événement sur activation - rien n'est visible si le code n'est pas rentré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Form_Current()
     
    DoCmd.SelectObject acTable, , True
    DoCmd.RunCommand acCmdWindowHide
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
     
    End Sub
    Et sur le bouton login je mets ce code :

    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
     
    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_bis", _
                "[lngEmpID]=" & Me.cboEmployee.Value) Then
     
            lngMyEmpID = Me.cboEmployee.Value
     
            'Close logon form and open splash screen
        If lngMyEmpID = 1 Then
        '
       ' On Error Resume Next
    DoCmd.SelectObject acTable, , True
    DoCmd.ShowToolbar "Ribbon", acToolbarYes
     
            DoCmd.Close acForm, "frmEmployee_bis", acSaveNo
        '
                  Else
          MsgBox "Password invalide, recommencez", vbOKOnly, _
                "Invalid Entry!"
            Me.txtPassword.SetFocus
        End If
    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
    Si le code est correct on atteint les tables sinon on recommence et au bout de 3 fois on est éjecté de la base.

    Voila ce que j'ai trouvé.

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Donc le probleme est resolu ?

    Si oui, merci d'appuyer sur le bouton :Resolu: en bas de discussion.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Division après insertion d'un fichier .obj
    Par lemisentrope dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/03/2014, 09h40
  2. Réponses: 2
    Dernier message: 03/02/2014, 08h06
  3. Update table après export dans fichier plat
    Par calagan99 dans le forum SSIS
    Réponses: 8
    Dernier message: 18/04/2013, 18h54
  4. Création d'un fichier texte après modification d'une table
    Par keryss dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 17/01/2012, 13h04
  5. Ouvrir un fichier PDF après l'avoir créé avec PDFCreator ?
    Par OtObOx dans le forum Général VBA
    Réponses: 2
    Dernier message: 15/03/2008, 21h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo