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 :

Remplissage d'un champs en fonction d'un autre


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 45
    Points : 33
    Points
    33
    Par défaut Remplissage d'un champs en fonction d'un autre
    Bonsoir à tous,

    Nouveau sur le forum et nouveau également sur les bases de données je me demandais si il était possible de remplir un champs en fonction d'un autre.

    Je m'explique, imaginons une table commercial (qui est une personne), cette personne habite une région et un département (table que j'ai également créé et renseigné).

    Dans la table commercial, je voudrais qu'une fois que j'ai choisi sa région (par un menu déroulant), il me sélectionne uniquement les départements de cette région accessibles toujours grace à un menu déroulant.

    J'éspère avoir été assez clair...

    merci d'avance

    Arnaud

  2. #2
    Membre habitué

    Inscrit en
    Mars 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 92
    Points : 127
    Points
    127
    Par défaut
    Bonjour et bienvenue sur le forum,
    regarde dans la FAQ cela est expliqué
    http://access.developpez.com/faq/?page=zdl#DepZdl


  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Tu trouvera deux exemples ici

    Bon courage

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    Merci pour vos réponses, c'est gentil.

    Je m'y remets de suite

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    J'ai testé la solution de la faq, mais je ne comprends pas ma liste déroulante reste blanche...

    Pourtant pour l'essai j'ai fait des tables simples :

    Une table "région" -> comprenant un id_region, et son nom
    une table "département" -> comprenant un id_département, un réf_région (clé étrangére), et son nom.

    Dans mon formulaire j'ai bien donné un nom à chacune de mes listes déroulantes.

    Et dans ma liste déroulante départements j'ai effectuer la requête suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Département.Num_Département, Département.Nom_Département FROM Département WHERE ((Département.Réf_Région)=Forms!F_Geo.lstRegion);

    Je ne comprends pas pourquoi mon champs dép reste désépéremment vide...

    De plus, pour rafraichir ma liste région j'ai copié le petit code vba. J'ai fait pour la liste déroulante région : -> propriétes -> Evénements -> si modification (option code), j'ai copié le code, mais lorsqu'ensuite je veux le séléctionner dans ma liste déroulante de "modifications" rien n'apparait ...

    Merci d'avance pour vos réponses

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    peut-être un point à vérifier, la colonne liée de la liste lstRegion.
    En Effet si la colonne liée correspond au nom de la région, alors WHERE ((Département.Réf_Région)=Forms!F_Geo.lstRegion)
    ne fonctionne pas.
    Tu peux utiliser Forms!F_Geo!lstRegion.Column(0) pour la première colonne de la liste.

    A+

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    salut, c'est la premiere fois que je poste, j'ai découvert ce forum car débutant, je maitrise pas tout, mm pas beaucoup

    donc avec votre aide aucun problème pour mettre a jour la deuxième liste déroulante, cependant, mes deux liste sont dans un sous formulaires
    mon form s'appelle "structure"
    mon sous form s'appelle "personnel"

    quand j'ouvre directement "personnel", l'actualisation fonctionne mais quand j'ouvre "structure" (et dc mon sous form en mm temps), j'ai une fenetre qui s'affiche me demandant la valeur de ma première liste!!!qui est donc dans ma requette sur la deuxième liste à actualisé!

    si j'ai été assez claire et que vous pouvez m'aidez ça serait cool

    merci

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    en fait je vien de comprendre qu'il ne reconnait pas le nom de ma liste qd elle est dans un sous formulaire

    pourquoi?

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Salut,

    Tu écrit : (et dc mon sous form en mm temps), hors c'est là ton erreur. Le sous form s'ouvre avant le formulaire, et c'est tout le problème que j'ai mainte fois rencontré et plus ou moins résolu par l'utilisation de macro et de la fonction Atteintre Contrôle... A toi de voir si tu peut l'utiliser dans ton application.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    deja merci pr ta reponse

    fodra que je cherche pke je connai pas cette fonction

    cependant, ya pas moyen de recup l'info comme si c'était le formulaires du genre : formulaires![formulaire]![sous formulaires]!....

  11. #11
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    l'expression pour atteintre un contrôle d'un formulaire est différente de celle pour atteintre un contrôle d'un sous-formulaire.

    On peut s'affranchir du niveau du formulaire (principal/imbriqué) dans la requête SQL source de la liste
    en ne nommant pas le formulaire pour faire référence à la liste, puisque les deux listes sont dans le même formulaire.
    Si on reprend l'exemple de la faq :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select DISTINCT [Table2].Rue
    From [Table2]
    Where ((([Table2].[Code Section])=[forms]![formulaire1]![lstville]));
    on peut aussi l'écrire
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Select DISTINCT [Table2].Rue
    From [Table2]
    Where ((([Table2].[Code Section])=[lstville]));

    A+

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 45
    Points : 33
    Points
    33
    Par défaut
    Merci à tous pour vos réponses

    A bientôt

  13. #13
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Citation Envoyé par arno974
    Merci à tous pour vos réponses

    A bientôt
    arf...si c'est bon..merci d'indiquer résolu dans le topic (cf les outils de la discussion)...
    j'ai relu tt le topic avant de voir que c t bon

    merci

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Merci a LedZeppII car j'ai reussi a atteindre la zone modifiable ds mon ss formulaire

    maintenant j'ai un autre probleme toujours dans le meme sous formulaire donc je m'en remet à vous!

    situation : dans le formulaire principale, j'enregistre un établissement, et dans le sous formulaire certaine personne qui y travaille comme directeur, comptable, gestionnaire...la liste de personne étant tres longue, je les filtres par fonction à l'aide de ma premiere liste déoulante, et dans la seconde je les selectionne. Jusque là tout va bien

    Quand ensuite je veu saisir une deuxieme personne, donc sur les listes qui apparaissent en dessous apres saisi de la premiere personne, le filtre par fonction change pour la premiere personne saisi et donc son nom disparait, donc en fait je ne peux saisir qu'une seule personne!

    Comment faire pour que les liste déroulante pour les 2, 3 ... personnes suivantes ne fassent pas changer les valeurs des premieres, comme une sorte d'anti retour??

    merci par avance car je sais que vous etes les meilleurs

  15. #15
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir tonylebikerfou,

    Dans un formulaire en continu, la source de données d'une zone de liste modifiable est commune à tous les enregistrements.
    Donc si dans l'enregistrement actif tu changes le contenu de la liste, tu le changes aussi pour les autres enregistrements.
    Le nom disparait parce que le nom contenu dans le champ de l'enregistrement n'est plus dans la liste de noms,
    après que tu as modifié le contenu de la liste par Requery, et que la propriété "Limiter à la liste" est à Oui.

    Si tu as une liste à une seule colonne tu peux essayer de changer la propriété "Limiter à la liste" à Non.
    Dans ce cas là ça devrait fonctionner.

    Par contre si ta liste a deux colonnes et que celle qui est liée au champ n'est la même que celle affichée
    (ex IdNom est lié au champ et Nom est affiché), ça ne fonctionne pas car Access n'accepte pas que l'on mette
    la propriété "Limiter à la liste" à Non, si la première colonne visible n'est pas la colonne liée.

    A+

Discussions similaires

  1. Filtrer un champ en fonction d'un autre
    Par deglingo37 dans le forum Access
    Réponses: 2
    Dernier message: 16/09/2006, 09h54
  2. [VBA] Remplir un champ en fonction d'un autre champ
    Par Amanck dans le forum Access
    Réponses: 6
    Dernier message: 18/05/2006, 10h12
  3. [requête] Afficher un champ en fonction de trois autres
    Par charlix dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/01/2006, 19h05
  4. Réponses: 2
    Dernier message: 05/10/2005, 16h07
  5. Modifier la valeur d'un champ en fonction d'une autre...
    Par venividivici dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 25/08/2005, 14h28

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