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 :

Remplir des champs automatiquement à partir d'un champ maitre


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Remplir des champs automatiquement à partir d'un champ maitre
    Bonjour, à l'occasion d'un stage, on m'a demandé de créer une base de données, malheureusement, mise a part la création d'une liste de prets de DVD commune à toute ecole, je ne sais pas bien me servir d'ACCESS.

    Voila mon pb :

    La trame du formulaire est la suivante : Nom Prenom UserID

    J'aimerais qu'une fois que le Nom a été remplit ( à l'aide d'une table annexe et de la commande SELECT ( ceci est déja effectué )) que le prénom ainsi que l'user ID s'affiche automatiquement grace à la meme table annexe !


    Merci pour votre aide !!

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2003
    Messages : 281
    Points : 209
    Points
    209
    Par défaut
    il faut que tu remplisses tes 2 autres champs en fonctions d'une requête (un string) qui a comme condition sur le nom la valeur saisie dans le formulaire.

    En gros,

    je passerai par un recordset...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim bd As DAO.Database
    Dim rst As DAO.Recordset
    Set bd = CurrentDb
    dim sql as String
     
    sql = "SELECT * FROM maTable WHERE Nom= '" & champFormulaireNom.value & "';"
    Set rst = bd.OpenRecordset(sql)
    champFormulairePrenom.value= rst![Prenom ]
    champFormulaireId.value= rst![UserID]
    (pas teste du tout , mais alors pas du tout, c juste l'idée)

    tu mets ce code selon l'évenement que tu souhaite (perte de focus... onChange...) (pour onChange, dans le WHERE, il faudra mettre "champFormulaireNom.Text")
    S'il n'y a pas de solution, il n'y a pas de problème.
    Moi je dis ça, je dis rien.

  3. #3
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonjour, question idiote peut être, mais tu ne peux pas tout simplement lier ton formulaire à la table et laisser Access faire le boulot ?

    Pour afficher un Nom particulier, tu n'auras qu'à faire une recherche, et tous les champs correspondants seront là.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Cela ma lair bien difficile pourtant c est une fonction qui est souvent utilisee non ? n y aurait il pas un moyen plus simple [ sans code sql ] de determiner les champs automatiquement ? merci sunvalley je vais essayer ce que tu proposes

  5. #5
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 71
    Points
    71
    Par défaut
    en VB fonction DLOOKUP trés pratique

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    dlookup? comment s en sert on ?

    merci davik

  7. #7
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Attention, dLookup fonctionne exactement comme une requête SQL, sauf que tu devras l'utiliser une fois pour chaque champ, alors que la requête de sunvialley (qui n'est pas bien compliquée) renvoit tous les champs que tu veux en une seule opération.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Points : 24
    Points
    24
    Par défaut Liste deroulante
    Tu peux utiliser les listes déroulantes d'access.

    En mode création, tu supprime la zone de texte où il y a le nom et tu cliques sur la boite à outils. Tu choisis liste déroulante en vérifiant que la petite baguette magique de la boite à outils est activée.
    Un assistant va s'ouvrir, tu choisis ta table et les champs et tu suis l'assistant selon ce que tu veux voir apparaître.
    Une fois ta liste crée tu vas dans la zone de texte du champ prénom et tu inscris =nom de la liste de choix.column(n°colonne de l'info que tu veux afficher).
    Fait attention, la numérotation des colonnes des listes commence à 0 donc si tu as trois colonnes, la deuxième est la numéro 1.

    Voilà lorsque tu choisiras un nom dans la liste du champ nom, access mettras normalement à jour les autres champs.

    J'espère avoir répondu à ta question.
    Bon

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Sebos... trop fort merci , tu m'évites le long code SQL ce qui m'arrange parfaitement ! Mais je ne trouve pas la commande qui update le formulaire après avoir entré Le nom de la personne !

    Quelqu'un connait cette fonction ?

    Merci en tout cas !

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Points : 24
    Points
    24
    Par défaut re
    Vérifie le nom que tu as mis dans =nom.column().
    C'est le nom de ta liste déroulante avant column et pas le nom que tu as sur ton étiquette. Si tu n'as pas modifier le nom ça doit être Modifiable avec un numéro.
    Normalement cela doit te remplir les autres champs automatiquement.

    Bon courage

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    J'ai une version anglaise du logiciel. J'ai fait Combo30.column .

    Car Combo30 est le nom de ma liste déroulante.

    Combo30.column(0) je ne m'en sers pas car c'est le Nom ( celui qui est dans la liste déroulante,

    Ensuite dans la zone de texte, j'ai écriss =Combo30.column(1) ce qui devrait correspondre au prénom...

    Mais access affiche #name?



  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 65
    Points : 61
    Points
    61
    Par défaut
    Si les 3 infos sont dans la meme table, c'est tres simple, dans les propriété de ton formulaire a Source tu met ta table. Dans les propriétés de ta zone de texte UserID et Prenom, tu leur affecte leur source de controle correspondante a la table. Ensuite tu cré comme la dit sebos21 une zone de liste déroulante, il va t'ouvrir l'aide, tu choisis : Rechercher un enregistrement dans mon formulaire basé sur la valeur que tu aura dans la zone, tu choisi le champ Nom de ta table et normalement ca marche.

    Sinon la méthode de sunvialley marche tres bien.

    Enfait comme toi je suis en stage, et je ne connaissais rien a Access, et j'ai tres vite comprit que les Recordset aller beaucoup m'aider C'est le seul moyen que je connaisse de faire des opérations sur la base de données.

  13. #13
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Merci kinian !
    Merci de ton aide kinian ca ié jai réussi !

    Merci à tous vraiment vous me sortez d'une grosse grosse galere !

    Bye bye



  14. #14
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 91
    Points : 58
    Points
    58
    Par défaut
    j'ai aussi appliqué la technique du:
    =nomduchmp.column()

    cela ne fonctionne pas
    dans une zone de texte il me met la valeur choisi dans la liste déroulante, et dans les autres néant.

    j'ai pourtant bien vérifier les numéro de colonne,et le nom du champ

    est ce que c'est parce que ma liste déroulante modifiable à été créer avant?
    Dans la vie, il y a deux choses que l'on ne peut pas faire a moitié:
    C'est naître et mourir.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    hello !

    peux tu faire un résumé stp ? vu que çà marche ce serait bien d'avoir la procédure à adopter clairement.

    merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Remplir des tables automatiquement à partir d'un dossier et sous-dossier
    Par corinthien dans le forum VBA Access
    Réponses: 0
    Dernier message: 15/12/2014, 13h35
  2. [WD14] affichage des champs a partir d'un champ clé
    Par sliminformatique dans le forum WinDev
    Réponses: 1
    Dernier message: 31/03/2010, 10h20
  3. Réponses: 1
    Dernier message: 06/05/2009, 11h18
  4. Remplir une liste déroulante à partir d'un champ dans une pop up
    Par wiam26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/08/2006, 16h42

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