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 :

Combobox textbox indexchanged


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 61
    Par défaut Combobox textbox indexchanged
    Bonjour,

    Je dois faire un projet qui consiste à la gestion d'un parc informatique. Je suis novice dans la matière et je bloque sur un truc qui doit surement être tout bête pour certains d'entre vous.

    Je commence seulement, j'ai créé une base ACCESS avec 2 tables (USERS, ACTIVITE). J'ai un form sur vb-2010 express. La liaison entre les 2 outils est faite. J'arrive à afficher mes données.
    J'ai créer une combobox qui pointe sur la clé primaire de ma table enfant (ACTIVITE) afin d'alimenter une textbox qui affiche le libellé de l'activité. J'arrive à afficher les données du combobox ainsi que les sélectionner mais je n'arrive pas à faire la liaison du textbox en fonction de l'index.

    ci-dessous le travail déjà effectué

    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
     
    ' Liaison avec la clé primaire de la table fille (trouvé sur le net)
     
     Private Sub USERS_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
     strConn = "provider=microsoft.jet.OLEDB.4.0; Persist Security info=false; data source= Parc_Info_APS.mdb"
            con = New OleDbConnection
            command = New OleDbCommand("select ACTIVITE_PSF FROM ACTIVITE", con)
            con.ConnectionString = strConn
            con.Open()
            dr = command.ExecuteReader
            While dr.Read
                demarrage_activitePSF()
                CB_ACTIVITE_USER.Items.Add(dr(0))
            End While
    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
     
     
    ' code pour la liaison entre combobox et textbox en fonction de l'index (Marche pas )
     
        Private Sub CB_ACTIVITE_USER_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_ACTIVITE_USER.SelectedIndexChanged
     
            Dim i As Integer
     
            Select Case CB_ACTIVITE_USER.SelectedItem(i)
                Case i = 0
                    TXT_LIB_ACTIVITE.Text = ObjetDataTable.Rows(0).Item("LIB_ACTIVITE").ToString
                Case i = 1
                    TXT_LIB_ACTIVITE.Text = ObjetDataTable.Rows(1).Item("LIB_ACTIVITE").ToString
                Case i = 2
                    TXT_LIB_ACTIVITE.Text = ObjetDataTable.Rows(2).Item("LIB_ACTIVITE").ToString
                Case i = 3
                    TXT_LIB_ACTIVITE.Text = ObjetDataTable.Rows(3).Item("LIB_ACTIVITE").ToString
                Case i = 4
                    TXT_LIB_ACTIVITE.Text = ObjetDataTable.Rows(4).Item("LIB_ACTIVITE").ToString
                Case i = 5
                    TXT_LIB_ACTIVITE.Text = ObjetDataTable.Rows(5).Item("LIB_ACTIVITE").ToString
            End Select
     
        End Sub
    Je vous serai reconnaissant de bien vouloir m'aider et de m'expliquer. Je n'ai pas trouvé malgré plusieurs recherches sur le net.

    En espérant d'avoir été clair sur le problème.

    Merci par avance,

    Cordialement

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    J'ai pas tout compris en ce qui concerne le contenu des DataTables, mais on devrait pouvoir remplacer tout le select par une simple affectation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TXT_LIB_ACTIVITE.Text = ObjetDataTable.Rows(CB_ACTIVITE_USER.SelectedIndex).Item("LIB_ACTIVITE").ToString

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut
    Bonjour,
    Déjà dans le combobox il faut que la propriété AutoPostBack soit à true, si non il n’exécute pas son événement SelectChange. En suite il faut que dans ta page, l’événement load contienne un "not postback" pour éviter que le combobox se recharge à chaque événement et qu'il n'affiche dans la textbox que sa première ligne.

    Voici un exemple avec une DropDownList qui qui récupéré la clef et le libelle contenu dans une 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
     
    Dim txt_sql As String
            Dim sql_Cde As New OleDb.OleDbCommand()
            Dim myReader As OleDb.OleDbDataReader
            Dim dt As New DataTable()
            Dim dr As DataRow
            Dim dv As New DataView(dt)
            dt.Columns.Add("IntergerValue", GetType(Int32)) 'colonne contenant l''identifiant'
            dt.Columns.Add("StringValue", GetType(String)) 'Colonne contenant le libellé'
            sql_Cde.Connection = Connection1
     
     
            If Not IsPostBack Then
     
     txt_sql = "SELECT T_Organismes.N_Organisme, T_Organismes.Nom_Org " & _
               " FROM (T_Organismes) "
     
    sql_Cde.CommandText = txt_sql
                Connection1.Open()
                myReader = sql_Cde.ExecuteReader()
                While myReader.Read()
                    dr = dt.NewRow()
                    dr(0) = myReader.GetValue(0)
                    dr(1) = UCase(myReader.GetValue(1))
                    dt.Rows.Add(dr)
                End While
                myReader.Close()
     
                Connection1.Close()
                DDL_Organismes.DataSource = dv
                DDL_Organismes.DataTextField = "StringValue"
                DDL_Organismes.DataValueField = "IntergerValue"
                DDL_Organismes.DataBind()
     
                Organismes.Items.Insert(0, New ListItem("-Faites votre choix-", String.Empty))
    end if

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 26/05/2008, 21h52
  2. Combobox + TextBox
    Par sumfvm dans le forum Windows Forms
    Réponses: 5
    Dernier message: 16/04/2008, 22h40
  3. Insertion de résultat de comboBox,TextBox dans table
    Par loic20h28 dans le forum Visual Studio
    Réponses: 3
    Dernier message: 31/01/2008, 15h59
  4. VBA Combobox textbox
    Par vibalistic dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/11/2007, 14h20
  5. Problème de ComboBox, TextBox et BDD (VB6)?
    Par zizou2007 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/05/2007, 14h24

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