Combo1.ListIndex = (det index jag vill visa) Så mycket mer kan man inte använda sig av ItemData: <code>Combo1.ListIndex = 0 Itemdata
Fyller combobox med orter ifrån db
comOrt.AddItem tRs!ort
comOrt.ItemData(ctrListControl.NewIndex) = tRs!id
Istället för att använda
comOrt.ListIndex = 1
comOrt.ItemData = 1
nu söker jag fram texten när jag vet itemdata(listindex) och skriver in texten i combon för att visa ett defalt värde.
Kanske svårt att förstå problemet men jag tar fram default värden ifrån en tabell och skriver ut dem till användaren och det är ett InnerJoin värde & visar jag inte någon text i combon ser det inte ut som det är något valt.
Tacksam för hjälp
Hmmm....Jag testar. :-)Sv: Combo1.ListIndex = 0 Itemdata
<code>
Private Sub Form_Load()
Dim i As Integer
For i = 0 To 10
Combo1.AddItem "Item " & i
Combo1.ItemData(Combo1.NewIndex) = i + 100
Next i
End Sub
Private Sub Combo1_Click()
'Visar Texten på postionen:
MsgBox "Text: " & Combo1.List(Combo1.ListIndex)
'Visar Itemdata på postionen:
MsgBox "ItemData: " & Combo1.ItemData(Combo1.ListIndex)
'Visar Index på postitonen:
MsgBox "Valt Index: " & Combo1.ListIndex
End Sub
Private Sub Command1_Click()
'Hämta texten från postionen med ItemData 103
MsgBox "Text från ItemData 103: " & Check_ItemData(103)
End Sub
Private Function Check_ItemData(ByVal ItemDataValue As Integer) As String
Dim i As Integer
For i = 0 To Combo1.ListCount - 1
If Combo1.ItemData(i) = ItemDataValue Then
Check_ItemData = Combo1.List(i)
'Kommentera bort nästa rad frå att visa positionen i comboboxen
'Combo1.ListIndex = i
Exit For
End If
Next i
End Function
</code>Sv: Combo1.ListIndex = 0 Itemdata
Private Function LookUpItemData(Combo as ComboBox, ItemData as Long) as Long
Dim Index as Long
LookUpItemData = -1
For Index = 0 to Combo.ListCount - 1
If Combo.ItemData(Index) = ItemData Then
LookUpItemData = Index
Exit For
End If
Next
End Function
'Markerar Post som har ItemData = 12
comOrt.ListIndex = LookUpItemData(comOrt, 12)
</code>