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

IHM Discussion :

[Formulaire] Relation entre 2 tables et formulaire


Sujet :

IHM

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Formulaire] Relation entre 2 tables et formulaire
    Bonjour,
    J'ai cherché en vain dans la FAQ et avec Google, mais ne trouvant pas, je lance un SOS
    J'ai 2 tables avec une relation entre elles :
    Table1 : nom de personne
    Table2 : Equipes auxquelles ces personnes appartiennent
    et 1 formulaire pour rentrer ces données + d'autres.


    Dans le formulaire, j'ai une liste déroulante pour choisir la personne et j'aimerai faire apparaitre automatiquement l'équipe à laquelle elle appartient dans un champ annexe.

    Voila, voila...
    Qqun posséde t-il la réponse ou un lien pour la solution , SVP?

    Merci et bon dimanche.
    Version utilisée : ACCESS 2003

  2. #2
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 24
    Points
    24
    Par défaut
    Salam
    voila une réponse à ta question :
    Il s'agit d'un problème fréquemment posé. Comment créer une liste déroulante qui ne propose qu'un choix restreint parmi une série de valeurs ? Je m'explique : Imaginez un formulaire de saieie des clients, basé sur une table T_Client. Il s'agit de sélectionner son pays dans une liste des pays, et, une fois le pays sélectionné, chosiri sa ville dans une 2ème liste, mais en n'affichant que les villes du pays sélectionné :

    La marche à suivre, bien que logique est assez longue. Il ne s'agit pas d'une solution unique, mais d'un exemple parmi d'autres.

    Marche à suivre
    Etape 1 : Créez une table T_Client, comme ceci :

    N'y entrez aucun enregistrement, fermez-là, enregistrez-là sous T_Client. Pas de clé primaire.

    Etape 2: Créez une nouvelle table T_VillePays, comme ceci :

    Entrez-y les données suivantes :

    Fermez la table et enregistrez-là sous T_VillePays. Pas de clé primaire.

    Etape 4: Créez une nouvelle requête, basée sur T_VillePays
    Ce sera une requête de type Regroupement. Placez-y uniquement le champ Pays. Le but est d'obtenir un seul exemplaire de chaque pays existant.

    Voici le résultat :

    Fermez cette requête et enregistrez-là sous R_Pays

    Etape 5: Retournez dans la table T_Client, et créez l'assistant liste de choix pour les pays
    Cette liste de choix sera bien entendu basée sur R_Pays.

    Fermez la table et enregistrez-là

    Etape 6: Créez un formulaire basé sur T_Client
    Comme ceci :

    Fermez-le, et enregistrez-le sous F_Client.

    Etape 7: Créez une nouvelle requête basée sur T_VillePays
    Placez-y les deux champs Ville et Pays :

    C'est maintenant, dans cette requête, que le noeud du problème va se résoudre. Comme vous l'aurez peut-être déjà deviné, nous sommes en train de concevoir la requête qui va servir de source au champ Ville de T_Client. Et il va donc s'agir de ne montrer QUE les villes correspondantes au pays sélectionné dans l'enregistrement courant du formulaire F_Client. Pour restreindre cette liste, vous allez devoir indiquer comme critère de Pays le pays indiqué dans le formulaire. Pour ce faire, cliquez avec le bouton droit de la souris dans le critère du pays, et choisissez Créer :

    Allez chercher Formulaires/Tous les formulaires/F_Client, cliquez sur "Liste de champs", et double-cliquez sur "Pays" pour obtenir Formulaires![F_Client]![Pays] comme ceci :

    Et cliquez sur OK.

    Si vous exécutez ce formulaire maintenant, il va vous demander :

    Si vous répondez Suisse, il va vous donner toutes les villes de Suisse. Mais cette boîte de dialogue disparaîtra dès que le formulaire F_Client sera ouvert.

    Fermez cette requête et appelez-là R_Ville

    Etape 8: Créez la liste de choix dans T_Client

    Ne mettez QUE la ville :

    Ce #Nom ? est normal, c'est à cause du paramètre qui va chercher dans le formulaire qui est fermé provisoirement.

    Fermez T_Client et Enregistrez.

    Etape 9: Mettre à jour le formulaire avec cette nouvelle liste
    Ouvrez F_Client, et supprimez le champ Ville

    Refaites-le glisser depuis la liste des champs, afin que ce soit la liste modifiable :

    Etape 10: C'est quasiment terminé
    Lancez votre formulaire en mode saisie de données, et saisissez Alain Dupont, choisissez son pays : France, et constatez avec émerveillement que dès que vous avez choisi France, dans la liste des villes, il n'y a que les villes ... Françaises !

    Etape 11: Rafraîchissement de la liste
    Il y a juste encore un petit bug : si, maintenant que vous avez choisi France pour Alain Dupont, vous vous rendez compte que vous vous êtes trompés et qu'il habite en Suisse, lorsque vous choisissez Suisse, la liste des villes reste la liste des villes françaises. Pour remédier à celà, un doigt de Visual Basic suffira. Il va en fait s'agir de rafraîchir la liste des villes à l'instant ou l'utilisateur clique dessus, c'est à dire Sur Réception Focus.

    Revenez en mode créationd e votre formulaire, et demandez les propriétés de votre liste Ville (Bouton droit de la souris, propriétés) : Cherchez la propriété "Sur Réception Focus", cliquez dessus, choisissez "Procédure événementielle", et cliquez sur les 3 petits points juste à côté :

    Une fois dans Visual Basic, écrivez simplement Ville.Requery, comme ceci :

    Fermez Visual Basic avec la grosse croix ROUGE en haut à droite

    Et voilà : Maintenant, chaque fois que vous allez changer de pays, la liste déroulante s'actualisera.
    NB : ci joint une plus de doc
    Fichiers attachés Fichiers attachés

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 24
    Points
    24
    Par défaut Liste
    Salam
    J espère que ma réponse t a aidé ?

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    salut
    Je te conseil
    1. de passer par un zone de liste modifiable
    2. de choisir ces données dans la table EQUIPE
    3. quand il sera pret tu ouvre sa source de données et tu applique un critère basé sur ton champs PERSONNE
    4. tu le met en mode SQL et tu copie le code
    5. tu passe dans l'évènement SUR MISE A JOUR du champs PERSONNE
    6. tu passe au code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dim strsql as string
    strsql= "le code sql que tu as copié"
    Me.[le nom du champs EQUIPE].rowsource=strsql
    Me.[le nom du champs EQUIPE].requery
    cela doit marché si TU passe un peut de ton temps la dessus
    A+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci à vous deux pour vos pistes.

    Je commence par la solution de alassanediakite et je me pencherai sur celle de White Tiger ensuite.


    Alassanediakite, je vois que tu es localisé à Bamako : il y a presque 20 ans, j' ai vécu qques années à Hombori. J'était tout jeune et j'en ai gardé que de bons souvenirs.

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2014, 07h59
  2. Réponses: 3
    Dernier message: 31/08/2012, 10h33
  3. [AC-2010] Formulaire et relation entre les tables
    Par mickael777 dans le forum IHM
    Réponses: 8
    Dernier message: 03/04/2012, 23h14
  4. Relation entre plusieurs tables et 1 Formulaire
    Par bibi28 dans le forum Modélisation
    Réponses: 2
    Dernier message: 27/09/2008, 13h56
  5. [Relations] afficher les relations entre 2 tables
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 14/01/2004, 17h07

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