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 :

liste déroulante liée à une table


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Avril 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Avril 2022
    Messages : 5
    Points : 2
    Points
    2
    Par défaut liste déroulante liée à une table
    Bonsoir à toutes et à tous.
    Pour une petite application personnelle, j'ai une base access (access 2013) .
    Je butte sur un problème et ne trouve pas la solution.
    Pouvez vous m'aider ??
    Ma base a deux tables "donateurs" et "projets", liées par l'ID de la table donateur et l'ID de la table projet.
    Pour créer des projets, l'ai créé un formulaire dans lequel j'ai une liste déroulante pour choisir le donateur.
    Si le donateur n'existe pas dans la liste déroulante, j'ouvre la fenêtre d'un autre formulaire de création de "donateur" dans laquelle je rentre mon nouvel enregistrement.
    A la validation de ma saisie, je ferme le formulaire donateur et je reviens automatiquement dans dans le formulaire projet.
    L'enregistrement est bien dans la table donateurs.
    Mais si je clique sur le menu déroulant, il n'apparait pas.
    Si je ferme la fenêtre du formulaire projet, puis la relance en mode saisie nouvelle donnée, l'enregistrement apparait dans ma liste déroulante.
    Comment faire pour qu'à la sortie du formulaire donateur et retour sur la fenêtre projets, la liste déroulante contienne ce nouvel enregistrement ??
    Je dois manquer quelque chose mais je ne sais pas quoi.

    Je vous remercie par avance pour votre aide.
    Très cordialement.
    Jean-Marc

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 774
    Points
    19 774
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Citation Envoyé par Sixtjmm Voir le message
    ...
    A la validation de ma saisie, je ferme le formulaire donateur et je reviens automatiquement dans dans le formulaire projet.
    L'enregistrement est bien dans la table donateurs.
    Mais si je clique sur le menu déroulant, il n'apparait pas.
    Si je ferme la fenêtre du formulaire projet, puis la relance en mode saisie nouvelle donnée, l'enregistrement apparait dans ma liste déroulante.
    Comment faire pour qu'à la sortie du formulaire donateur et retour sur la fenêtre projets, la liste déroulante contienne ce nouvel enregistrement ?
    Il faut actualiser la liste des donateurs avec sa méthode requery, par exemple à la fermeture du formulaire donateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Close()
        Forms!FormulaireProjet!ListeDonateurs.Requery
    End Sub
    Je suppose que votre formulaire projet se nomme "FormulaireProjet" et votre liste des donateurs "ListeDonateurs".

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Bonjour
    Vous pourriez pourquoi pas utiliser cette méthode

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 371
    Points : 19 774
    Points
    19 774
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Une possibilité pour utiliser la méthode de la faq proposée par hyperion en gardant la possibilité de compléter les autres informations dans votre formulaire des donateurs :

    • Vous enregistrez dans la table des donateurs le nouveau nom du donateur saisi sur la liste (sur absence dans liste) comme proposée par hyperion.
    • A la fin du code, vous ouvrez votre formulaire donateurs sur le dernier enregistrement ajouté, pour compléter ensuite la saisie avec le prénom, etc..


    Autrement dit quand vous ouvrez le formulaire le nouveau donateur sera déjà enregistré dans la table, il restera juste à compléter ses informations.

    Comme cela vous n'avez normalement qu'une ligne de code à ajouter pour ouvrir le formulaire

  5. #5
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 273
    Points : 6 582
    Points
    6 582
    Par défaut
    Et pour compléter
    Où cbo_donateur = nom liste déroulante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub cbo_donateur_NotInList(NewData As String, Response As Integer)
    Dim rst As DAO.Recordset
    If MsgBox("Le nom du donateur " & NewData & " ne figure pas dans la liste." & vbNewLine & _
        "Voulez-vous l'ajouter ?", vbQuestion + vbYesNo) = vbYes Then
        Set rst = CurrentDb.OpenRecordset("tbl_donateur") 'tbl_donateur = tbl concernée par l'ajout
        rst.AddNew
        rst!nom_donateur = NewData 'nom_donateur = champ concerné par l'ajout dans la liste déroulante
        rst.Update
        rst.Close
        Set rst = Nothing
            If CurrentDb.TableDefs("tbl_donateur").Fields.Count > 2 Then 'verifie que la tbl contient plus de 2 champs, si oui
            DoCmd.OpenForm "frm_donateur", acNormal, "", "", , acNormal 'ouverture du frm_donateur
            DoCmd.GoToRecord acForm, "frm_donateur", acLast 'pour atteindre le dernier enregistrement créé
            End If
    End If
    Response = acDataErrAdded
    End Sub

Discussions similaires

  1. Liste déroulante (liée à une table SQL) dans un formulaire
    Par helico57570 dans le forum Modélisation
    Réponses: 1
    Dernier message: 09/11/2009, 13h41
  2. [MySQL] Liste déroulante liée à une table
    Par fraisoo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/02/2007, 06h20
  3. [Oracle] Remplir une liste déroulante avec une table
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2006, 15h26
  4. Liste déroulante dans une table hyperfile
    Par arnaud_verlaine dans le forum WinDev
    Réponses: 8
    Dernier message: 01/11/2006, 18h27
  5. Griser 1 liste déroulante liée à une autre, pb de concaténat
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2005, 16h45

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