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

Requêtes et SQL. Discussion :

filtrer les données en fonction de l'utilisateur


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Points : 100
    Points
    100
    Par défaut filtrer les données en fonction de l'utilisateur
    J'ai 4 utilisateurs pour ma base de données.

    Le plus petit objet commun est la commune. Une commune peut cependant appartenir à plusieurs sydicats. J'ai donc une table commune, une table lien_commune_syndicat et une table syndicat.

    A l'ouverture de la base de données j'ai un formulaire d'identification, j'aimerais qu'une fois la personne identifiée (user dans une variable temporaire) elle n'ai plus accès qu'à ses données. Y a-t-il une requête qui me permette de faire ça pour toutes mes données ou faut-t-il que je fasse une requête pour chaque formulaire?

    J'ai essayé de faire une requête par formulaire, cependant je ne vois pas comment dire en fonction de la personne connectée exécuter telle requête. Faut-il que j'intègre ma requête dans du code VBA à l'ouverture du formulaire pour y arriver?

    Merci pour votre aide

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par aba_tarn Voir le message
    elle n'ai plus accès qu'à ses données.
    Qu'entends-tu par là ?

    1) L'utilisateur Toto a enregistré des données dans la table T1 et ne doit pas voir les données de l'utilisateur Titi situées dans la même table ?

    2) L'utilisateur Toto n'a accès en lecture qu'à certaines tables et pas à d'autres mais peut voir toutes les lignes d'une table à laquelle il a accès ?

    Pour le 2), Access dispose de droits utilisateurs qui permettent de limiter en lecture, écriture et modification de structure sur les éléments de l'application.

    Pour le 1), il faut que d'une manière ou d'une autre, tu identifies qui est propriétaire de la donnée afin de limiter ensuite son accès.

    Et pour en revenir à ta question :
    Y a-t-il une requête qui me permette de faire ça pour toutes mes données ou faut-t-il que je fasse une requête pour chaque formulaire?
    Comme chaque formulaire a probablement sa propre requête, dans le cas 1) il faudra que tu intègres à chaque requête les contraintes d'accès aux données.

    Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Points : 100
    Points
    100
    Par défaut
    Il s'agit effectivement du cas 1), les données des 4 utilisateurs sont dans la même table.

    Par contre au début je pensais ajouter une colonne à chaque table pour dire à qui appartient la donnée, ce qui aurait été le plus facile pour trier les données. Le problème étant par ex dans la table camping, un camping peut appartenir à 2 syndicat.

    Si je rajoute une colonne et que je mets comme clé primaire l'identifiant du camping+ l'appartenance à un syndicat, est-ce que c'est correct ou est-ce que c'est du "bidouillage"?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 032
    Points
    34 032
    Billets dans le blog
    14
    Par défaut
    Un modèle de données serait utile pour répondre...

    Dans ton premier message, je vois bien l'association :
    Communes -0,n----Appartenir----0,n- Syndicats

    Dans le second je crois comprendre :
    Campings -0,n----Appartenir----0,n- Syndicats

    Mais ne serait-ce pas plutôt le schéma ci-après ?
    Campings -1,1----Situer----0,n- Communes -0,n----Appartenir----0,n- Syndicats
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    172
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 172
    Points : 100
    Points
    100
    Par défaut
    C'est effectivement la troisième solution qu'il faut prendre en compte, merci pour ces indications.

    Par contre au niveau pratique pour ma requête, comment je vais mettre pour les communes qui appartiennent au syndicat qui s'est connecté? Ou alors sur l'ouverture du formulaire, je mets du code VBA du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Application.Tempvars("user").value=... then
    SQL=...
    Elseif...
     
    Endif
    ou est-ce que je peut faire la manip directement dans la requête (je ne vois pas comment)?

Discussions similaires

  1. Réponses: 17
    Dernier message: 24/03/2016, 13h13
  2. Réponses: 2
    Dernier message: 26/03/2009, 10h11
  3. Réponses: 1
    Dernier message: 28/10/2008, 11h19
  4. Filtrer les données suivant l'utilisateur
    Par aba_tarn dans le forum IHM
    Réponses: 3
    Dernier message: 02/07/2008, 17h31
  5. Filtrer les données en fonction d'un paramètre multivalué
    Par v1nce dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 18/01/2007, 10h10

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