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

Modélisation Discussion :

Restreindre une liste de choix sans passer par un formulaire


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Restreindre une liste de choix sans passer par un formulaire
    Bonjour,

    Entre autres tables, ma base contient les tables suivantes T_Adresses, T_Clients, et T_Projets

    Un client peut avoir plusieurs adresses, et il peut y avoir plusieurs projets pour un client. La table T_Clients est donc liées aux deux autres tables par une relation 1 à plusieurs.

    Dans la table T_Adresses, le champ AdresseComplete est un champ calculé concaténant NetRue, CodePostal, et Ville

    A l'aide de l'assistant Liste de choix, je parviens à faire en sorte que le champ Adresse de T_Projets me propose les valeurs de AdresseComplete de la table T_Adresses, mais je parviens pas à restreindre les adresses proposées à celles du client du projet
    Je voudrais y parvenir sans passer par un formulaire, un peu par entêtement, mais surtout car ça me permettrait de comprendre mieux le fonctionnement. Est-ce possible ? J'ai essayé d’enrichir la requête SQL par un WHERE mais sans succès.

    Toutes les solutions que j'ai trouvées sur ce forum et ailleurs sur Internet passent par l'utilisation d'un formulaire. Peut-être que je n'ai pas cherché avec les bons termes.

    Merci d'avance de votre aide
    Images attachées Images attachées  

  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.

    Non tu n'as pas cherché avec les mauvais termes c'est simplement que ce genre chose relève de l'interface utilisateur et donc des formulaires.
    Les listes déroulantes au niveau des champs dans les tables c'est simplement un nice to have.
    La seule solution que tu peux faire pour limiter les valeurs acceptées au niveau de la table c'est de faire un truc du genre

    tblPersonne
    ClefPersonne

    tblAdresse
    ClefAdresse
    ClefPersonne
    Autres info
    Avec un index unique (ou une clef primaire) composé de ClefAdresse et ClefPersonne
    Avec une relation entre tblPersonne et tblAdresse sur ClefPersonne.

    tblCommande
    ClefCommande
    ClefPersonne
    ClefAdresse

    Avec une relation entre tblCommande et tblAdresse sur ClefPersonne et ClefAdresse.

    Dans ce cas la BD n'acceptera que tu ne choisisses qu'une addresse de la personne mais ne t'empéchera pas d'essayer avec une adresse qui ne lui appartient pas. La BD refusera simplement que tu l'associe.

    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
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 142
    Points : 38 926
    Points
    38 926
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Même si plusieurs personnes partagent une même adresse, il est préférable d'associer une adresse à une et une seule personne.
    Ainsi, dans le cas de personnes physiques, si l'une d'entre elles change d'adresse, les autres ne sont pas impactées
    Par ailleurs, une personne peut avoir plusieurs adresses : adresse de domicile, de livraison, de facturation etc., c'est très fréquent dans le cas de personnes morales, un peu moins pour les personnes physiques.
    Ce faisant, il est préférable d'identifier l'adresse relativement à la personne : l'adresse n'a plus lieu d'être si la personne disparait, d'où le (R) près des cardinalités dans le modèle conceptuel ci-dessous.
    Par ailleurs, plusieurs adresses peuvent être sitées dans la même ville et une ville peut avoir plusieurs adresses, il faut donc modéliser une entité-type VILLE au niveau conceptuel qui deviendra une table au niveau logique et physique.

    Le modèle conceptuel est donc :
    [PE_PERSONNE] 0,n --- (resider) --- 1,1(R) [AD_ADRESSE] 1,1 --- (typer) --- 0,n [YA_TYPE_ADRESSE]
    ........................................................................1,1
    .........................................................................│
    ......................................................................(situer)
    .........................................................................│
    .........................................................................0,n
    ...................................................................[VI_VILLE]

    Et le modèle tabulaire qui en résulte ressemblera à ceci (PK soulignées et en gras, FK suffixées #, contraintes unique en gras), ici j'ai considéré que toute personne était une personne physique, donc avec un nom, un prénom, une date de naissance... à modifier s'il y a aussi des personnes morales (utiliser en ce cas l'héritage pour les sous-types) :

    PE_PERSONNE(PE_ident, PE_nom, PE_prenom, PE_date_nais...)
    YA_TYPE_ADRESSE(YA_ident, YA_code, YA_libelle...)
    VI_VILLE(VI_ident, VI_insee, VI_nom...)
    AD_ADRESSE(PE_ident#, AD_numero, AD_ligne1, AD_ligne2, ..., YA_ident#, VI_ident#) <-- l'identifiant de l'adresse est donc composé en majeur de la PK de la personne, complété d'un chrono.

Discussions similaires

  1. [XL-2007] Manipuler une liste de choix sans userform?
    Par EmmanuelleC dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/12/2010, 09h59
  2. Acceder à une page ASP.NET sans passer par la case Login
    Par ehochedez dans le forum ASP.NET
    Réponses: 8
    Dernier message: 07/10/2010, 10h28
  3. update une ligne de gridview sans passer par edit
    Par pseudo88 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 16/03/2009, 12h52
  4. Réponses: 2
    Dernier message: 29/06/2008, 19h16
  5. Réponses: 5
    Dernier message: 24/08/2007, 15h42

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