Combobox - problème

Résolu
cs_serge99 Messages postés 78 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 14 octobre 2006 - 19 janv. 2006 à 19:40
cs_codin Messages postés 13 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 6 février 2006 - 5 févr. 2006 à 18:51
Bonjour,

J'ai une table Access 2000 avec 2 colonnes, j'aimerais afficher le contenu de la colonne # 2 dans un Label (Ou textBox) lorque je selectionne la colonne # 1 par mon combo Box. Comment faire? Voici le code de ma page:

Dim DbFile As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim SQLstmt As String


Private Sub Form_Load()
Open_cn
End Sub


Private Sub Open_cn()


DbFile = App.Path & "\bd2.mdb"



Set cn = New ADODB.Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & DbFile & ";" & _
"Persist Security Info=False"


cn.Open



SQLstmt = "SELECT [Nodeprojet] FROM [projet]"



Set rs = New ADODB.Recordset
rs.Open SQLstmt, cn, adOpenStatic, adLockOptimistic, _
adCmdText
Call PopulateCombo
Call BindData


End Sub
Private Sub BindData()
Set Combo1.DataSource = rs

Call SetFields
End Sub


Private Sub SetFields()
Combo1.DataField = "Nodeprojet"

End Sub


Private Sub PopulateCombo()
Dim i As Long
rs.MoveFirst
For i = 1 To rs.RecordCount
Combo1.AddItem (rs.Fields("Nodeprojet"))
rs.MoveNext
Next i
End Sub
Private Sub Close_cn()
cn.Close
Set cn = Nothing
End Sub


Private Sub bnttemp_Click()
Unload Me
FrmMain.Show 1
End Sub

5 réponses

cs_codin Messages postés 13 Date d'inscription samedi 1 mai 2004 Statut Membre Dernière intervention 6 février 2006
5 févr. 2006 à 18:51
Essaye ca moi j,ai deja eu le meme probleme, mais moi mes instructions sont dans une sous-routine que j'apelle sur le click de mon combobox.

Private Sub Combo1_Click()
With rs
rs.MoveFirst
Do While Not .EOF
If rs.Fields(2).Value = """ & combo1.Text & """ Then
blNoProjet.Caption = rs.Fields(1).Value
Exit Do
End If
rs.MoveNext
Loop
End With
End Sub
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 janv. 2006 à 03:16
Salut
Ce genre de code doit exister parmi les sources du site. Suffit de chercher.
En gros, il faut utiliser l'évènement _Click de ton ComboBox pour savoir quand un nouveau choix est fait.
Lire la valeur actuellement séelctionnée
La rechercher dans le RecordSet dans le Champ1 qui a servi de source (donc, il faut le garder en mémoire et ne pas Closer) avec une boucle classique qu'on retrouve dans 100% des sources gérant des DB :
With monRecordSet
.MoveFirst
Do While Not .EOF
If .Field(0).Value = "Le Texte que je recherche" Then
Label.Caption = .Field(1).Value
Exit Do
End If
.MoveNext
Loop
End With

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_serge99 Messages postés 78 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 14 octobre 2006
20 janv. 2006 à 15:09
Merci...

Il y a cependant un petit problème dont je n'arrive pas à comprndre la cause. Voici où il y a un Bug...probablement dû à mon ignorance

If rs.Fields(1).Value = "Le Texte que je recherche" Then

Ok la routine semble fonctionner mais je ne connais pas la syntaxe à utilisé pour le texte en surbrillance puisque celui-ci et variable????

Que faire... Étant débutant j'ai essayé plusieurs chose dont " " ou " ' " et " !"
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 janv. 2006 à 19:33
Salut
lol, tu n'as pas dû beaucoup chercher.
Quand l'évènement monCombo_Click se déclenche, le texte de l'item sélectionné est dans monCombo.Text

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_serge99 Messages postés 78 Date d'inscription lundi 29 août 2005 Statut Membre Dernière intervention 14 octobre 2006
21 janv. 2006 à 13:02
C'est la première chose que j'ai fait mais cela cause un bug (erreur 3265).

Private Sub Combo1_Click()


With rs
rs.MoveFirst
Do While Not .EOF
If rs.Fields(2).Value = "combo1.text" Then
blNoProjet.Caption = rs.Fields(1).Value
Exit Do
End If
rs.MoveNext
Loop
End With
End Sub
0
Rejoignez-nous