cs_serge99
Messages postés78Date d'inscriptionlundi 29 août 2005StatutMembreDernière intervention14 octobre 2006
-
19 janv. 2006 à 19:40
cs_codin
Messages postés13Date d'inscriptionsamedi 1 mai 2004StatutMembreDerniè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
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
cs_codin
Messages postés13Date d'inscriptionsamedi 1 mai 2004StatutMembreDerniè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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
cs_serge99
Messages postés78Date d'inscriptionlundi 29 août 2005StatutMembreDernière intervention14 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