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

Access Discussion :

masquer les tables


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut masquer les tables
    Salut
    Je cherche à masquer les tables (ou au moins bloquer l'accès) pour les utilisateurs. Hors j'ai des formulaires basés sur ces tables. Du coup, si je bloque la lecture des tables via l'assistant sécurité utilisateur, ça plante à l'ouverture des formulaires quand je suis connecté en tant que simple utilisateur.
    Je pourrais aussi masquer les tables en règlant leurs propriétés, mais il y aura toujours la possibilité de les démasquer pour l'utilisateur. Pour moi, l'idéal serait que l'utilisateur ne puisse pas arriver aux tables directement, mais par le biais des formulaires oui.
    Quelqu'un a une idée?
    J'aimerais aussi bloquer pour les utilisateurs l'accès au code VBA. Biensur je peux mettre un mot de passe, mais il n'y a pas moyen de l'interdir purement et simplement pour ceux qui ne sont pas admin?
    merci

    Marco

  2. #2
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Hello,


    Voici ce que j'utilise :

    Un front-end (interface)
    Un back-end (les données)

    Le fichier back-end est protégé par un mot de passe à l'ouverture.

    Au niveau du front-end, mes tables sont attachées et le mot de passe stocké au niveau du string de connection.

    Mon appli est fermée c'est à dire que les divers formulaires et états ne sont ouverts que via un menu principal (un formulaire avec des boutons et zones de liste - j'ai une table qui contient les options du menu et les liens vers les formulaires)

    Lors du lancement, je charge automatiquement un formulaire (splash screen) à partir duquel se fait le login pour l'affichage du menu principal

    Au niveau des options de démarrage, j'ai supprimé tout.

    J'ai protégé le code de mon projet par un mot de passe (ou tu peux créer un mde, le code n'est plus accessible)

    J'ai exécuté du code qui bloque l'utilisation de la touche <Shift> pour ouvrir le fichier mdb en bypassant les options de démarrage....

    Et le tour est joué :-)

    Voici le code pour bypasser la touche <shift>
    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
     
    Sub SetBypassProperty(booArg As Boolean)
        Dim varRép As VbMsgBoxResult
        On Error Resume Next
        Const DB_Boolean As Long = 1
        If booArg = False Then
            varRép = MsgBox("Desactivate <Shift> key and lock the application ?   ", vbQuestion + vbYesNo, " ")
            If varRép = vbNo Then Exit Sub
        Else
            varRép = MsgBox("Activate <Shift> key and unlock the application ?   ", vbQuestion + vbYesNo, " ")
            If varRép = vbNo Then Exit Sub
        End If
        ChangeProperty "AllowBypassKey", DB_Boolean, booArg
        Call cmdCancel_Click
    End Sub
    Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
        Dim dbs As Object, prp As Variant
        Const conPropNotFoundError = 3270
     
        Set dbs = CurrentDb
        On Error GoTo Change_Err
        dbs.Properties(strPropName) = varPropValue
        ChangeProperty = True
     
    Change_Bye:
        Exit Function
     
    Change_Err:
        If err = conPropNotFoundError Then    ' Property not found.
            Set prp = dbs.CreateProperty(strPropName, _
                varPropType, varPropValue)
            dbs.Properties.Append prp
            Resume Next
        Else
            ' Unknown error.
            ChangeProperty = False
            Resume Change_Bye
        End If
    End Function

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    C'est surement très efficace mais ça m'a l'air très compliqué...
    Pour l'instant lorsque la base se charge, si l'utilisateur n'est pas admin je cache les tables en faisant pour chaque table

    C'est peut être pas très propre mais pour l'instant ça marche. Par contre j'arrive pas encore à le faire pour les requêtes et les formulaires, qui eux apparemment ne possèdent pas cette propriété "Attributes".

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    J'ai résolu le truc, c'était tout con en fait

    If user <> "Admin" Then
    DoCmd.SelectObject acTable, , True
    DoCmd.RunCommand acCmdWindowHide
    End If
    Comme ça on cache tout d'un coup.
    merci en tous cas.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/01/2015, 00h20
  2. masquer les tables system d'une base de donnée
    Par sisi87 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/10/2009, 22h12
  3. [SQL Server 2005]Masquer les valeurs d'une table
    Par ravaid dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 22/08/2009, 15h29
  4. masquer les tables système
    Par jbat dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/05/2004, 13h51
  5. Sélection de toute les tables d'une base
    Par lord_paco dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/07/2003, 15h56

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