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 :

Code pour une liste déroulante.


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Code pour une liste déroulante.
    Bonjour,
    Je me présente, je suis en école d'ingénieur et je dois réaliser un jeu de carte ( Le UNO) sous Access sans avoir de cours d'informatique. Je me suis donc lancer dans l'interface, et sa se passe plutôt bien. Cependant, lorsqu'on va commencer une partie, je souhaite que le joueur ai un nom. J'ai donc mi une liste déroulante pour que le joueur marque son nom ou en choisissent un existant.
    Mais, j'aimerai que ce nom soit sauvegarder lorsqu'on valide la saisie...
    je suis tombé sur ceci ( ListeDeroulanteNomJoueur est le nom de ma zone de 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub ListeDeroulanteNomJoueur_AfterUpdate()
     
    Const NB_ITEMS As Long = 20 'Nombre d'éléments archivés dans la liste
    Dim b As Byte
     
    'Maj de la liste des derniers critères recherchés
    With ListeDeroulanteNomJoueur
     
    'Si la valeur saisie est un Null _
    ou une chaîne de longeur nulle _
    ou égale au premier item, _
    alors aucune Maj de la liste n'est nécessaire.
    If Nz(.Value, "") = "" Or .Value = .Column(0, 0) Then Exit Sub
     
    'Etant donné qu'on ne souhaite pas de doublons, _
    on va parcourir tous les éléments _
    pour éliminer un éventuel doublon avant d'ajouter notre valeur en haut de liste.
    For b = 1 To .ListCount - 1
    If .Column(0, b) = .Value Then .RemoveItem b: Exit For
    Next b
     
    'Ajoute la nouvelle saisie
    .AddItem Item:=.Value, Index:=0
     
    'Limite la liste à NB_ITEMS éléments
    If .ListCount = NB_ITEMS Then .RemoveItem NB_ITEMS - 1
     
    End With
     
    End Sub
    Mais des problèmes subsistent:
    -Lorsque je rentre en nom dans ma liste, et que je valide en appuyant sur "entrer", j'ai un message d'erreur "erreur d'exécution '6' Dépassement de capacité' et la ligne " For b = 1 To .ListCount - 1" se met en surbrillance jaune.
    -J'ai donc supprimer cette partie qui évite les doublons (qui ne m'est pas indispensable). Le code marche mais en fait je souhaite que les noms soient conservés si l'on change de formulaire, or ce n'est pas le cas. Il s'accumule que si l'on ne change pas de formulaire. Comment faire pour les sauvegarder?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour et bienvenue sur le forum Office de DVP

    Nous disposons d'une excellente FAQ (lien en bas de cette page) et tu y trouveras : Absence dans liste déroulante - Proposer d'ajouter la valeur manquante dans la table source

    Philippe

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Merci du lien que tu me propose Philippe JOCHMANS, mais je l'avais deja vu et je l'ai essayer. Mais quand on l'utilise, faut il un bouton pour valider la saisi, ou tout simplement appuyer sur "entrer"? Car quand j'appui sur "entrer", rien ne se passe

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    Rebonsoir,

    Attention la méthode de la faq est différente de la tienne:

    Il te faut définir la propriété type de rowsource comme égal à "Table/Requête" et la propriété rowsource de ta liste avec le nom de ta table source...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Cher User
    Je te remercie de ton aide, mais quand je rentre les données dans "source contrôle" ( je met "=TableNomJoueur!NomJoueur") qui indique donc ma table avec le champs correspondant (Pour mon premier code posté), Access me met un message d'erreur du type:
    "L'objet ne contient pas d'objet d'automatisation 'TableNomJoueur'."
    Alors quand je valide dans ma liste deroulante le nom que je choisi, il me dit dans la barre en bas
    -"Le contrôle ne peut pas être modifié; il est lié a l'expression 'TableNomJoueur!NomJoueur'"

    C'est vraiment la galére ce programme quand on y connais rien...

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    En français (car je te l'ai donné en anglais)

    tu ne touche pas à la propriété source Contrôle

    et tu mets pour commencer dans ta liste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    origine source = "Table/Requête"
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contenu = "TableNomJoueur"
    on verra pour la suite...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Bon tout d'abord désolé je me suis trompé.
    Alors quand je change les propriétés de ma liste déroulante, tout ce passe bien, mais quand je veut rentrer le nom d'un joueur, j'ai un nouveau message d'erreur
    qui me dit:

    "Valeur incorrecte pour ce champs
    Vous avez peut être rentré du texte dans un champs numérique ou un nombre supérieur à ce que permet le paramètre de la propriété taille du champ"

    Or quand je vais dans propriété, je ne trouve pas cette option et dans ma table, j'ai bien du texte pour le champ "NomJoueur"

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    Tu peux nous donner le code que tu as mis sur l'évènement NotInList

    De plus ta propriété Source contrôle doit être vide...

    Ta Table doit comporter un champ NomJoueur

    La propriété Nbre Colonnes de Ta liste doit être égal à 1

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Mon code est le suivant sur l'option NotInList:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ListeDeroulanteNomJoueur_NotInList(NewData As String, Response As Integer)
        If MsgBox("Voulez-vous ajouter " & NewData & " à la liste des joueurs ?", _
                           vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
            DoCmd.RunSQL "INSERT INTO TableNomJoueur ( NomJoueur ) SELECT """ & NewData & """;"
            Response = acDataErrAdded
        Else
            Response = acDataErrContinue
            ListeDeroulanteNomJoueur.Undo
        End If
     
    End Sub
    Pour les propriété de la liste déroulante, j'avais bien ce que tu m'as dis...

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    N'oublie pas la balise de code:

    Tu peux mettre ta base en piece jointe au format 2003 ???
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    ma base? c'est à dire?
    Le fichier ayant l'extension *mdb? car il fait 44 m.o ( ce que j'ai du mal a comprendre car j'ai 1 table, 3 formulaire avec des fond écran, et c'est tout...)

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    Ou alors une copie d'écran de ta feuille des propriété de ta liste:

    Pour que je puisse voir toutes les propriétés de ta liste déroulante...

    D'AUTRE PART:

    AS TU SUPPRIME TON ANCIEN CODE ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Mon code AfterUpdate a effectivement était supprimé.
    Images attachées Images attachées  

  14. #14
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    Je regarde tout ça:

    1er:

    tu dois mettre ta propriété Limiter à liste à Oui.

    et sur l'évènement sur absence dans liste tu dois mettre [Procédure événementielle]


    Après tu clique sur [Procédure événementielle] pour voir si tu as bien le code que tu m'as donné.

    et Tu compile ton projet...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Alors merci de m'aider.
    Je peux rentrer le nom de mon joueur, mais quand il l'enregistre, dans ma liste deroulante, j'ai le numero du joueur ( c'est a dire le numero ID_Joueur) au lieu du nom

  16. #16
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 264
    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 264
    Points : 19 430
    Points
    19 430
    Billets dans le blog
    63
    Par défaut
    donc tu as 2 champs dans ta table,

    si NomJoueur est le 2ème champ de ta table

    alors tu crée une requête source qu'avec le nom du joueur et tu mets la propriété contenu de ta liste égale au nom de ta requête.
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Ce que j'ai fait, c'est que j'ai mis 2 colonnes dans les propriétés de ma liste déroulante, avec la première qui a une largueure de 0cm. De ce fait, je n'ai que la seconde.

    En tout cas, grand merci pour ton aide.

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

Discussions similaires

  1. listener pour une liste déroulante
    Par charpe_a dans le forum Composants
    Réponses: 3
    Dernier message: 19/09/2008, 10h38
  2. [DOM] Selected ! Comment définir un choix pour une liste déroulante
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/05/2008, 12h07
  3. [Excel] formule pour une liste déroulante
    Par marsupilami34 dans le forum Excel
    Réponses: 2
    Dernier message: 02/02/2007, 21h44
  4. donner une valeur nulle pour une liste déroulante
    Par sam01 dans le forum Langage
    Réponses: 3
    Dernier message: 15/10/2006, 15h45
  5. Réponses: 3
    Dernier message: 30/06/2006, 09h41

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