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 :

Affichage dans une listbox


Sujet :

IHM

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Affichage dans une listbox
    Bonsoir et bonne année à tous;
    Je réalise une base de données sous ACCESS et j'ai un soucis pour afficher le résultat d'une recherche dans une listBox.
    Ci-dessous le code que j'ai essayé d'utiliser mais il ne fonctionne pas.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    Private Sub Rechercher_Click()
     
    'MsgBox "NumTrouvé", vbInformation
     
    Dim MaBd As DAO.Database
    Dim MaTable As DAO.Recordset
    Dim MonControle As Control
    Dim f As Form
    Dim Id As Long
    Dim nomtest As String
    Dim req As DAO.Recordset
    Dim a As Long
    Dim mySQL As String
     
     
     
     
     
     'MsgBox "NumTrouvé", vbInformation
     
     
     
    Set MaBd = CurrentDb()
    Set f = Forms!FormEnregistrement
    Set MaTable = MaBd.OpenRecordset("BilletElectronique", dbOpenDynaset)
     
    MsgBox "Problem Before Cancelled", vbInformation, "Retry to Cancel please!! "
     
    'Me.NumBillet .SetFocus
     
    MaTable.MoveFirst
    Id = Me.NumBillet
     
    Do Until MaTable.EOF
     
    'MsgBox "NumTrouvé", vbInformation
     
    If (Id = MaTable!NumBillet) Then
     
    [COLOR="rgb(46, 139, 87)"]'Set req = CurentDb.OpenRecordset("SELECT * FROM BilletElectronique WHERE NumBillet = '" & Me.NumBillet & "'; ")
     
    'Set rs = db.OpenRecordset("select * from Produit where Pdt_Ref='" & Me.ldr_Produit & "' ;")
     
    'mySQL = "SELECT NomPassager FROM BilletElectronique WHERE NumBillet = 'Id' "
     
    'DoCmd.SetWarnings False
     
    'DoCmd.RunSQL (mySQL)
     
    'DoCmd.SetWarnings True
     
    'Set req = CurrentDb.OpenRecordset(mySQL)
     
    'req.MoveFirst[/COLOR]
     
     
         'MsgBox "NumTrouvé", vbInformation
         nomtest = MaTable!NomPassager
         'Me.ListePassager.Column(0) = req.Fields(0).Value
         'Me.ListePassager.Column(0) = nomtest
         'a = req.Fields(0).Value
         MsgBox "a", vbInformation
     
    'req.CLOSE
     
     
        Exit Sub
    End If
     
    MaTable.MoveNext
    Loop
     
     
     
     
    MaTable.CLOSE
    MaBd.CLOSE
    Set MaTable = Nothing
    Set MaBd = Nothing
     
     
    End Sub
    Mon problème se situe dans l'instruction "IF" ; je ne sais pas quel code utiliser pour aller dans la table "BilletElectronique" récupérer les infos dont j'ai besoin et les afficher dans ma listBox

    Si quelqu'un peut m'aider à voir où se trouve le prblème ;

    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour et bonne année à toi aussi,

    Pour chercher des infos dans une table, Une (bonne) méthode : les fonctions de domaine.
    Tu trouves tout ici :
    http://starec.developpez.com/tuto/fonctionsdomaines/
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut je trouve pas mon erreur
    Bonjour et merci pour le lien

    Je n'arrive toujours pas à trouver où se trouve mon erreur.
    elle se situe en effet dans mon instruction contenant ma requete SQL car à l'exécution j'ai un message d'erreur qui me dit qu'il y a soit trop peu de paramètre soit un paramètre en trop et finalement je ne comprends plus.

    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par kinglord Voir le message
    elle se situe en effet dans mon instruction contenant ma requete SQL car à l'exécution j'ai un message d'erreur qui me dit qu'il y a soit trop peu de paramètre soit un paramètre en trop et finalement je ne comprends plus.
    Si tu donnais la requête ce serait plus facile, non ?

    Philippe

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    voici la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set req = CurrentDb.OpenRecordset("SELECT NomPassager FROM BilletElectronique WHERE NumBillet= Me.NumBillet")
    Je voudrais en effet récupérer les infos du passager et les afficher dans une listbox mais déjà cette instruction ( ci-dessus) pour récupérer le nom du passager ne fonctionne pas et je ne comprends pas pourquoi.

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT NomPassager FROM BilletElectronique WHERE NumBillet=" & Me.NumBillet)
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Merci ça marche.

    J'aimerai bien maintenant pouvoir afficher cette donnée récupérée à partir de mon Recordset dans une listBox mais je ne comprends pas comment fonctionne un affichage dans une listBox.
    En fait j'aimerai récupérer à partir de ma table les nom, prénom et destination de voyage d'un passager et les afficher dans une listBox et pour le moment j'essai d'abord de comprendre le fonctionnement de la listBox juste pour le nom du passager.
    Voici les syntaxes que je teste mais elles ne fonctionnent pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.ListePassager.Column(0) = req.Fields(0).Value
    Set Me.ListePassager.Column(0) = req.GetRows(0)
    "ListePassager" est le nom de ma listbox dans laquelle je voudrais afficher le résultat de ma recherche.

    Merci encore pour votre précieuse aide

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    mais je ne comprends pas comment fonctionne un affichage dans une listBox.
    vois ceci :

    http://access.developpez.com/sources...terListeValeur

    et une utilisation ici :

    http://www.developpez.net/forums/d97...s/#post5465217
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    J'ai un soucis avec le RowSource

    En écrivant l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstDestination.RowSource = lstDestination.RowSource & .Column(0, i) & ";"
    et en y remplaçant "lstDestination" par "ListePassager" qui est le nom de ma listbox j'ai un message d'erreur. Alors en tatonant un peu j'ai écris ces deux instructions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Me.ListePassager = req.Fields(0).Value
     
    Me.ListePassager.RowSourceType = (req.Fields(0).Value)
    Je n'ai pas de message d'erreur mais rien ne s'affiche dans ma listbox donc je ne sais pas où se trouve l'erreur dans ces instructions.

    Merci

  10. #10
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Sauf erreur de ma part, je crois que vous êtes sur une mauvaise voie.

    Il faut distinguer le contenu de la liste et ce qui est affiché.

    Le contenu d'une liste doit être une table, une requête ou une chaîne SQL.

    Ne semble pas être l'un de ces cas.

    Quand à ce qui est affiché et visible, cela se gère dans les propriété de la liste "Nombre de colonnes" et "Largeur de colonne".


    Première chose : définir le contenu. En l'occurence pour vous, si j'ai bien compris il s'agit de cette chaîne sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    dim sql as string
    sql ="SELECT NomPassager FROM BilletElectronique WHERE NumBillet=" & Me.NumBillet)& ";"
    
    Me.ListePassager.RowSource = sql
    
    Ensuite à vous de gérer l'affichage effectif en jouant sur les deux propriétés vu précédemment. ATTENTION !! pour voir des colonnes qui se situent très à droite, il faut mettre à "0" la largeur des précédentes.

    Bon week end

    Pierre

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Merci pour l'explication. Et j'ai pu afficher dans la listbox toutes les valeurs que je voulais.
    Mais j'ai maintenant un autre soucis, c'est celui de faire plusieurs enrégistrements dans la même table par un seul formulaire.
    En fait, je dois enrégistrer les bagages d'un passager à travers un formulaire. Et comme un passager peut avoir plusieurs bagages, mon formulaire doit me permettre de tous les enregistrer (pour autant que pour chaque bagage on ait entré le poids de ce dernier).

    Pour chaque bagage, j'ai testé la valeur du poids si elle est différente de "null" si oui,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SaTable.AddNew
    MaTable!Poids = Me.PoidsBagage1
    MaTable!NumBillet = Me.NumBillet
    MaTable.Update
    et je le fait pour tous les champs de mon formulaire correspondant au poids d'un bagage mais malheureusement cette méthode ne marche pas et je n'ai pas de message d'erreur.

    Merci encore pour votre aide

  12. #12
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Dans un premier temps, votre problème doit se résoudre en utilisant les sous formulaire.

    Dans votre formulaire "Passager", vous mettez un sous formulaire "Bagages", de telle sorte que lorsqu'un passager est sélectionné, ne s'affiche que ses bagages dans le sous formulaires bagages.

    Pour cela, il faut que la conception de la base soit correcte, et qu'il existe bien une table "Bagage" ayant un champ de référence du passager.

    Bonne journée.

    Pierre

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Je n'arrive pas à utiliser le sous formulaire dans mon cas.
    En fait je ne cherche pas à afficher les bagages d'un passager mais plutôt à les enregistrer.
    Evidemment dans ma base de données il y a un lien entre les tables passager et Bagage (elles sont liées par la clé "NumBillet").
    Dans le cas du formulaire sur lequel je travaille (Formulaire Recherche), je recherche dans un premier temps (en entrant le numéro de billet) si le passager est bien dans la table Passager. Si oui, j'affiche ses données dans ma ListBox ( en cliquant sur le bouton "Rechercher" ).
    Jusqu'ici tout se passe bien.

    Ensuite, une fois le passager trouvé et ses données affichées, je dois enregistrer ses bagages dans la table Bagage et mes problèmes sont les suivants :
    - Le passager peut faire enregistrer au max 3 bagages. Donc j'aimerai pouvoir entrer le poids de chaque bagage et les enregistrer en cliquant sur le bouton "Enregistrer" de mon formulaire mais je butte à ce niveau et je ne sais pas trop comment résoudre le problème d'un enregistrement multiple ( les 3 bagages doivent avoir un ID différent dans la table Bagage mais doivent être liés au même Passager.
    -J'aimerai également pouvoir utiliser le numéro de billet que j'ai entré pour effectuer la recherche d'un passager. Mais lorsque j'écris le code lié au bouton "Enregistrer" lié aux bagages et que j'utilise la valeur "Me.NumBillet" rien ne se passe. Je dois pourtant affecter ce numero de billet à chaque bagage pour garder la liaison entre les tables passager et bagage et pouvoir par la suite retrouver tous les bagages de chaque passager.

    Merci d'avance

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonjour;

    Je voudrais effectuer une recherche de tous les passagers d'un vol et afficher leurs noms et prenoms dans une listbox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    dim sql as string
    sql ="SELECT NomPassager, PrenomPassager FROM BilletElectronique WHERE Destination=" & Me.Destination)& ";"
     
    Me.ListePassager.RowSource = sql
    Ce code me permet d'afficher les données d'un seul passager et j'aimerai ici afficher tous ceux qui correspondrons au résultat de la recherche.

    Merci d'avance

  15. #15
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Je suis un peu perdu.

    Ne pourriez vous pas mettre à disposition votre base (épurée des données confidentielles !).

    Merci d'avance
    Pierre

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonjour;

    Je joins ici ma base de données. Les données contenues dans les tables sont des données juste pour tester le bon fonctionnement ( donc rien de confidentiel).
    Mes soucis se situent au niveau des formulaires "Enregistrement" et "Recherche"
    - Dans le formulaire "Enregistrement" le soucis est celui de pouvoir enregistrer les bagages du passager
    - dans les formulaires "Recherche" le soucis est celui de pouvoir afficher tous les éléments correspondants au critère de recherche. Il suffit donc que cela fonctionne pour un formulaire et je le transposerai pour les autres formulaires de recherche.

    Merci encore pour votre précieuse aide.
    Fichiers attachés Fichiers attachés

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonjour

    Je n'arrive toujours pas à avancer de mon coté et je voudrais juste savoir si quelqu'un n'aurait pas trouvé une solution à mes soucis.

    Merci

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonjour

    je mets a disposition une version 2003 de ma base de donnees.

    Bien a vous
    Fichiers attachés Fichiers attachés

  19. #19
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Je viens de jeter un coup d'oeil à votre base.

    Plusieurs choses.

    D'une part, dans un souci de debuggage, de correction, d'optimisation, bref d'apprentissage, ne mettez les caractéristiques "d'interface" de vos formulaires, état, contrôles qu'au dernier moment, quand tout marche.

    Par exemple, votre formulaire "RecherchePassager" est en Fenetre Modale.
    OK, pour utiliser la base, cela devra être comme cela; mais en attendant, ça ne vous permet pas de regarder les caractéristiques de votre formulaire, de vos contrôles dans un debuggage pas à pas.

    Deuxième chose.
    Vous vous compliquez énormément la vie : pas besoin de lire la table et tester chaque valeur. Il suffit de créer une requête basée sur la table "BilletElectronique", avec une condition "WHERE" comme vous l'avez presque bien écrit.

    En effet, dans les conditions d'une requêtes, il y a quelques petits trucs à savoir. EN l'occurence, quand le champ à tester est un champ "Chaîne" (string), l'opérateur n'est pas "égal" (=) mais "like" (comme). De plus la valeur du critère doit être entourée de guillemets.
    Parfois, ces guillemets qui apparaissent dans la chaine sql sont entourés de 2 autres guillemets. Personnellement, je n'y arrive pas, alors j'ai résolu le truc en utilisant le code ascii des guillemets (chr(34))

    Voici le code de votre bouton "Rechercher passager" simplifié.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Rechercher_Click()
     
    Dim sql As String
     
    sql = "SELECT NomPassager, PrenomPassager FROM BilletElectronique WHERE Destination like " & Chr(34) & Me.Destination & Chr(34)
     
    Me.ListePassager.RowSource = sql
    End Sub
    pas besoin de déclarer la listebox, elle l'est déjà dans le formulaire.

    Dans un premier temps,rien ne s'affichait dans cette listebox.
    En fait, vous l'aviez mal configurée.
    Dans les propriétés de votre list box, onglet "Données", 2nd ligne "Origine", choisir "Table/Requête".

    Et voilà.

    A vous de continuer.

    Pierre

Discussions similaires

  1. Affichage dans une listbox
    Par breizhgen dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/01/2012, 17h08
  2. [Débutant] Probleme d'affichage dans une listbox
    Par toham dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 20/03/2010, 13h15
  3. Problème d'affichage dans une listbox
    Par swap_nibble dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 25/01/2008, 17h29
  4. Affichage dans une listbox
    Par egg3774 dans le forum IHM
    Réponses: 4
    Dernier message: 13/06/2007, 18h15
  5. Affichage d'un champ dans une listbox
    Par BigZ444 dans le forum Bases de données
    Réponses: 5
    Dernier message: 22/04/2007, 18h23

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