Jag har tilldelst en list box's data & ett nytt index: Vet inte om jag förstår vad du menar med: Eller ville du hitta ItemData för en textsträng?Hämta första index ifrån en List1.list(0)
List1.ItemData(List1.NewIndex) = tempRs!idnr
För att få fram det index'et använder jag:
List1.ItemData(List1.ListIndex)
Nu vill jag hämta detta index ifrån den första i listan:
List1.List(0)
Så typ nått så här:
msgbox"" & List1.List(0)ItemData(List1.ListIndex)
Det är en loop som hämtar info ifrån en lista.
Tacksam för hjälp! :-)Sv: Hämta första index ifrån en List1.list(0)
List1.List(0)ItemData(List1.ListIndex)
Men här är några exempel...
För att hämta ut ItemData för första posten skriver du:
Msgbox "ItemData: " & List1.ItemData(0)
För att hämta ut Listposten för första posten skriver du:
Msgbox "List: " & List1.List(0)
För att hämta ut ItemData för markerad posten skriver du:
If List1.ListIndex = -1 Then
Msgbox "Ingen post markerad!"
Else
Msgbox "ItemData: " & List1.ItemData(List1.ListIndex)
End if
För att hämta ut Listposten för markerad posten skriver du:
If List1.ListIndex = -1 Then
Msgbox "Ingen post markerad!"
Else
Msgbox "List: " & List1.List(List1.ListIndex)
End if
Har skapat en liten generell funktion för att ladda en combobox.
Public Function LoadCombo(ComboBox As ComboBox,
Recordset As ADODB.Recordset, TextField As String,
Optional DataField As String, Optional Default As Long)
Dim fldText As ADODB.Field
Dim fldData As ADODB.Field
Set fldText = Recordset.Fields(TextField)
If Len(DataField) > 0 Then
Set fldData = Recordset.Fields(DataField)
If Default Then
Do Until Recordset.EOF
ComboBox.AddItem fldText.Value
ComboBox.ItemData(ComboBox.NewIndex) =
fldData.Value
If fldData.Value = Default Then
ComboBox.ListIndex = ComboBox.NewIndex
Recordset.MoveNext
Exit Do
End If
Recordset.MoveNext
Loop
End If
Do Until Recordset.EOF
ComboBox.AddItem fldText.Value
ComboBox.ItemData(ComboBox.NewIndex) =
fldData.Value
Recordset.MoveNext
Loop
Else
Do Until Recordset.EOF
ComboBox.AddItem fldText.Value
Recordset.MoveNext
Loop
End If
End FunctionSv: Hämta första index ifrån en List1.list(0)
Kanske nåt sånthär:
Private Function FindItemData(ListBox As ListBox, Text As String) As Long
Dim Index As Long
For Index = 0 To ListBox.ListCount - 1
If ListBox.List(Index) = Text Then
FindItemData = ListBox.ItemData(Index)
Exit For
End If
Next
End Function