Combobox et requête sql [Résolu]

cs_Herminator 34 Messages postés jeudi 4 novembre 2004Date d'inscription 11 février 2008 Dernière intervention - 19 sept. 2007 à 12:18 - Dernière réponse : cs_Herminator 34 Messages postés jeudi 4 novembre 2004Date d'inscription 11 février 2008 Dernière intervention
- 20 sept. 2007 à 11:20
Bonjour à tous,
Je débute en vb2005, et j'ai un problème pour utiliser le Displaymember et Valuemember du combobox.
En gros, comment je peux charger la liste d'un combobox avec un champ 'CustomerName', et récupérer le champ 'CustomerId' du client sélectionné ?

Voici comment je rempli mon combobox :

Private
Sub Remplissage_ComboBox1()
Rt.Open(
"SELECT DISTINCT SCustomer.CustomerNo, SCustomer.Name FROM SProd, SCustomer WHERE SProd.Customer_Id = SCustomer.Id ORDER BY SCustomer.Name ", Ct)

ComboBox1.Items.Clear()

Me.Cursor = Windows.Forms.Cursors.WaitCursor

While
Not Rt.EOF

   ComboBox1.Items.Add(Rt(1).Value)
   Rt.MoveNext()

End
While

Me.Cursor = Windows.Forms.Cursors.Default
Rt.Close()

End
SubMerci d'avance pour votre aide.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
lesoleil2010 26 Messages postés mardi 10 janvier 2006Date d'inscription 20 août 2010 Dernière intervention - 19 sept. 2007 à 16:03
3
Merci
je te propose une astuce si il n ya pas une maniere pour faire ca tu crie deux combobox une visible et l autre cacher ,la premiere tu le remplie avec les noms et l'autre(cacher) avec le numero
dans le cas de la selection d'un nom dans levenement combobox_visible_SelectedIndexChanged

tu met  combobox_cacher.Items.item(combobox_visible.selectedindex)
comme ca tu récupére le numero correspandant au nom choisis....

Merci lesoleil2010 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de lesoleil2010
ThoT49 153 Messages postés dimanche 4 mars 2007Date d'inscription 24 avril 2011 Dernière intervention - 19 sept. 2007 à 13:52
0
Merci
Pour charger des données dans un combobox avec access (je ne sais pas ce que t'utilise donc je t'aide pour access) il faut :


        'définition du chemin de la base de donnée
        Me.ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;" + _
          "Data Source=" + Application.StartupPath + "\BDD.mdb"

        'définition de la variable sql
        Me.Sql = "SELECT * FROM TableEssai" 'sql est déclaré en string

        'choix de la connection
        Me.Conn.ConnectionString = Me.ConnString 'connstring déclaré en string

        'on ouvre la connection
        Me.Conn.Open() 'conn déclaré en oledbconnection

        'déclaration du data adapteur
        Dim Dta As New OleDbDataAdapter(Me.Sql, Me.Conn)

        'on charge les données de la liste dans le dataset
        Dta.Fill(Me.Dts, "Table") 'dts déclaré en dataset

        'on rempli la table avec le dataset
        Me.Dtt = Me.Dts.Tables("Table") 'dtt déclaré en datatable

        'on rempli le combobox avec la table
        Me.ComboBox1.DataSource = Me.Dtt

        'on choisi le champs à afficher
        Me.ComboBox1.DisplayMember = "Champ"

        'on ferme la connection
        Me.Conn.Close(),

----

Voila cela fonctionne comme cela et c'est stable... Bien sur il faut utiliser access.

Je pense que avec sqlserver cela revien au même ...

Bonne chance ;)
Commenter la réponse de ThoT49
cs_Herminator 34 Messages postés jeudi 4 novembre 2004Date d'inscription 11 février 2008 Dernière intervention - 19 sept. 2007 à 14:03
0
Merci
Pour info, j'ouvre une table sous sql Server 7.
J'essaye tout de suite.
Merci du coup de main !
Commenter la réponse de cs_Herminator
lesoleil2010 26 Messages postés mardi 10 janvier 2006Date d'inscription 20 août 2010 Dernière intervention - 19 sept. 2007 à 15:21
0
Merci
toncombobox.datasoure=tondataset.tables("latable")


toncombobox.displaymember="nom_client" ce que seras afficher dans le combobox
toncombobox.valuemember="numero_client" la valeur retourner par le combobox lors du choix d'un nom


 
Commenter la réponse de lesoleil2010
cs_Herminator 34 Messages postés jeudi 4 novembre 2004Date d'inscription 11 février 2008 Dernière intervention - 19 sept. 2007 à 15:32
0
Merci
Est-ce que c'est possible sans passer par un dataset, c'est à dire en adodb, de cette manière :
Dans un module :
Public Ct
As
New ADODB.Connection

Public Cdt
As
New ADODB.Command

Dans ma form:

Dim Rt
As
New ADODB.Recordset

Private
Sub Form1_Load(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
Me.Load
Ct.ConnectionString =
"Provider=SQLOLEDB.1;Data Source=GPAO;" _
&
"Initial Catalog=Pcp2;User id=sa;"Ct.Open()

Cdt.ActiveConnection = Ct

Rt.CursorLocation = ADODB.CursorLocationEnum.adUseClient
Rt.CursorType = ADODB.CursorTypeEnum.adOpenDynamic
Rt.LockType = ADODB.LockTypeEnum.adLockPessimistic

Remplissage_ComboBox1()

End
SubLe code de Remplissage_ComboBox1() étant dans la question du départ !

Merci pour votre aide, car je rame !!!
Commenter la réponse de cs_Herminator
cs_Herminator 34 Messages postés jeudi 4 novembre 2004Date d'inscription 11 février 2008 Dernière intervention - 19 sept. 2007 à 16:09
0
Merci
Ok, j'ai compris. Mais je ferais ça demain.
Merci beaucoup pour votre aide !
Commenter la réponse de cs_Herminator
ThoT49 153 Messages postés dimanche 4 mars 2007Date d'inscription 24 avril 2011 Dernière intervention - 19 sept. 2007 à 20:20
0
Merci
lesoleil2010 t'as dit la même chose que moi mais plus précisément pour ton problème ...

Tu véra c'est très simple :p
Commenter la réponse de ThoT49
lesoleil2010 26 Messages postés mardi 10 janvier 2006Date d'inscription 20 août 2010 Dernière intervention - 19 sept. 2007 à 23:19
0
Merci
oui oui ta raison j ai pas fais attontion dsl,l'essentiel que Herminator trouve une solution
Commenter la réponse de lesoleil2010
cs_Herminator 34 Messages postés jeudi 4 novembre 2004Date d'inscription 11 février 2008 Dernière intervention - 20 sept. 2007 à 11:20
0
Merci
Super, ça marche.
Merci encore de votre aide à tous les deux.

Salutations.
Commenter la réponse de cs_Herminator

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.