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

VB.NET Discussion :

Récupérer la valeur d'une combobox


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut Récupérer la valeur d'une combobox
    Bonjour à tous!

    Voilà, depuis quelques jours je penche sur un gros soucis. J'ai une combobox où les valeurs sont générées via une requête.
    Jusque là, pas de souci.

    L'utilisateur choisis donc la valeur de la combo, mais là gros problème, impossible à récupérer la valeur pour l'utiliser dans une requête sur le formulaire suivant !

    J'ai tester le combo.selectedtext, combo.selectedvalue, combo.text

    Mais hélas, rien ne fonctionne, je ne récupère pas la valeur.

    Est-ce que quelqu'un peut m'aider? Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour,
    On peut voir un morceau de code?
    Cordialement
    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    Oui bien sur !

    Voilà

    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
    Public Class Frmprofeleve
     
        Private Sub btnQuitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitter.Click
            Me.Close()
            connexion.Close()
        End Sub
     
        Private Sub Frmprofeleve_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'tentative d'ouverture d'une connexion avec le serveur de base de données
            If Ouvertureconnexion() Then
                Dim strRequete As String
     
                strRequete = "SELECT num_eleve,nom_eleve, prenom_eleve FROM eleve"
                Try
                    Dim Command As New SqlClient.SqlCommand(strRequete, connexion)
                    Dim Sdrmodifnote As SqlClient.SqlDataReader
                    Sdrmodifnote = Command.ExecuteReader
                    Do While Sdrmodifnote.Read()
                        CBeleve.Items.Add(Sdrmodifnote("nom_eleve"))
                        Module_note.eleve = (Sdrmodifnote("num_eleve"))
                    Loop
                    Sdrmodifnote.Close()
                Catch Probleme As Exception
                    MessageBox.Show("L'erreur suivante a été rencontrée : " + Probleme.Message)
                End Try
            Else
                MessageBox.Show("La connexion au serveur n'a pas été réalisée")
            End If
            Connexion.Close()
        End Sub
     
        Private Sub Btnvalider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnvalider.Click
            Dim num_eleve As String
            num_eleve = Me.CBeleve.SelectedValue
            Frmmodifnote.lblnumeleve.Text = num_eleve
     
            If CBeleve.Text = String.Empty Then
                MessageBox.Show("Erreur, veuillez choisir un élève")
            Else
                MessageBox.Show(num_eleve)
                Frmmodifnote.Show()
            End If
        End Sub
    End Class

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Re bonjour
    As tu essayé de récupérer le nom d'un élève pour un index fixe?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
         Me.CBeleve.SelectedIndex = 0
         num_eleve = Me.CBeleve.SelectedValue
    EDIT : essaye plutôt .SelectedItem!

    Cordialement
    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    Ah! Intéressant, en prenant .selecteditems, j'ai bien le nom de la personne choisis dans la combo qui apparait suite au messagebox! Donc j'arrive bien à récupéré la valeur! C'est une bonne chose, merci beaucoup.

    Voilà ce que j'ai mis.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Btnvalider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnvalider.Click
            Dim num_eleve As String
            Me.CBeleve.SelectedItem = 0
            num_eleve = Me.CBeleve.SelectedItem
            Frmmodifnote.lblnumeleve.Text = num_eleve
            If CBeleve.Text = String.Empty Then
                MessageBox.Show("Erreur, veuillez choisir un élève")
            Else
                MessageBox.Show(num_eleve)
                Frmmodifnote.Show()
            End If
        End Sub

    J'ai oublié d'ajouter sur le formulaire qui suit, je dois avoir le bulletin de note de l'élève choisis, mais j'obtiens celui de la dernière personne de la combo.

    Et je n'arrive pas à l'utiliser pour cette requête




    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
    Public Class Frmmodifnote
        Dim Demande As String
        Private Sub Frmmodifnote_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Groupnote.Visible = False
            lblnom.Text = ""
            'On interdit la saisie directement dans la grille
            Me.DtGmodifnote.ReadOnly = True
            'Initialisation du nombre de colonnes
            DtGmodifnote.ColumnCount = 2
            'Definition des entêtes et de la taille des colonnes. Attention la numérotation des colonnes commence à 0
            DtGmodifnote.Columns(0).Name = "Matiere"
            DtGmodifnote.Columns(0).Width = 200
            DtGmodifnote.Columns(1).Name = "Moyenne"
            DtGmodifnote.Columns(1).Width = 100
            lblnumeleve.Text = eleve
     
            'Connexion à la base de données
            If Ouvertureconnexion() Then
                Dim strRequete As String
                Dim nb_note As Integer
                Dim somme_note As Double
                Dim moynote As Double
                strRequete = "SELECT DISTINCT a.num_matiere, e.num_eleve,nom_matiere, nom_eleve, count(note)nb_note, sum(note)somme_note FROM eleve e, apprendre a, matiere m WHERE m.num_matiere=a.num_matiere AND e.num_eleve=a.num_eleve AND e.num_eleve='" & lblnumeleve.Text & "' GROUP BY a.num_matiere, nom_matiere, nom_eleve,e.num_eleve"
                Try
                    Dim Command As New SqlClient.SqlCommand(strRequete, connexion)
                    Dim Sdrnote As SqlClient.SqlDataReader
                    Sdrnote = Command.ExecuteReader
                    Do While Sdrnote.Read()
                        nb_note = Sdrnote("nb_note")
                        somme_note = Sdrnote("somme_note")
                        moynote = somme_note / nb_note
                        Me.DtGmodifnote.Rows.Add(Sdrnote("nom_matiere"), moynote)
                    Loop
                    Sdrnote.Close()
                Catch Probleme As Exception
                    MessageBox.Show("L'erreur suivante a été rencontrée : " + Probleme.Message)
                End Try
     
            Else
                MessageBox.Show("La connexion au serveur n'a pas été réalisée")
            End If
     
        End Sub
     
        Private Sub Btnquitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnquitter.Click
            Me.Close()
            Connexion.Close()
        End Sub
        Private Sub Btnajouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnajouter.Click
            txtnote.Enabled = True
            Groupnote.Visible = True
            txtnote.Text = ""
            txtnote.Focus()
            'connection à la base de données
            If Ouvertureconnexion() Then
                Dim strRequete_select As String
                Dim numero_mat As String
     
                strRequete_select = "SELECT e.num_matiere, nom_matiere  FROM Matiere m, apprendre a WHERE e.num_latiere=a.num_matiere nom_matiere and num_eleve'" & lblnumeleve.Text & "' "
                Try
                    Dim Command As New SqlClient.SqlCommand(strRequete_select, connexion)
                    Dim Sdrmatiere As SqlClient.SqlDataReader
                    Sdrmatiere = Command.ExecuteReader
                    numero_mat = Sdrmatiere("num_matiere")
                    Do While Sdrmatiere.Read()
                    Loop
                    Sdrmatiere.Close()
                Catch Probleme As Exception
                    MessageBox.Show("L'erreur suivante a été rencontrée : " + Probleme.Message)
                End Try
            Else
                MessageBox.Show("La connexion au serveur n'a pas été réalisée")
            End If
            Connexion.Close()
        End Sub
    End Class
    lblnumeleve dans la requête est un label crée pour récupérer la valeur num_eleve.


    Peu importe la personne que je choisis, elle sera toujours la même sur le bulletin, ce qui est un peu contraignant. Je dois mal utilisé ma variable je pense.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    As tu vérifié que ta requête récupérais bien les bons résultats?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    strRequete = "SELECT DISTINCT a.num_matiere, e.num_eleve,nom_matiere, nom_eleve, count(note)nb_note, sum(note)somme_note FROM eleve e, apprendre a, matiere m WHERE m.num_matiere=a.num_matiere AND e.num_eleve=a.num_eleve AND e.num_eleve='" & lblnumeleve.Text & "' GROUP BY a.num_matiere, nom_matiere, nom_eleve,e.num_eleve"
     
    inputbox("","", strRequete)
    Teste ta requête comme ca. Si elle retourne pas les bons resultats t'aura une piste.
    Cordialement
    Nasty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT a.num_matiere, e.num_eleve,nom_matiere, nom_eleve, count(note)nb_note, sum(note)somme_note FROM eleve e, apprendre a, matiere m WHERE m.num_matiere=a.num_matiere AND e.num_eleve=a.num_eleve AND e.num_eleve='E010' GROUP BY a.num_matiere, nom_matiere, nom_eleve,e.num_eleve
    Voilà ce que j'ai. Le numéro envoyé est le dernier élève de la combobox précédente.


    EUREKA !!

    J'ai ajouter une ligne il y a quelques jours que j'ai oublié de retirer !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lblnumeleve.Text = eleve
    Je viens de réessayer, et ça marche nikel.

    Un grand merci pour ta rapidité à répondre et à m'aider !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Mais de rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'TODO : trouver une signature mieux que celle la

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

Discussions similaires

  1. [OL-2010] récupérer les valeurs d'une combobox
    Par benou72 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 03/02/2011, 11h48
  2. Récupérer les valeurs d'une combobox
    Par Many31 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/07/2009, 15h16
  3. Réponses: 1
    Dernier message: 29/07/2006, 10h08
  4. Récupérer la valeur d'une combobox
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2006, 15h20
  5. Réponses: 2
    Dernier message: 29/05/2005, 19h50

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