combobox mit 2 infos

The_MACman

Mitglied
hab hier ne combobox !
darin geb ich ne mysql tabelle aus !
die tabelle hat ne spalte id beschreibung und titel !
den titel will ich sichtbar in der combobox ausgeben ! das klappt auch soweit mit combobox.item.add("blubb")
aber ich würd gern noch die id der zeile mit rein legen damit ich später dann die beschreibung abrufen kann ! kann ich die id irgendwie in der index speichern oder so ? und wie ?
 
Moin,

für die Speicherung der ID gibt es z.B. die ItemData Eigenschaft, mit der sich diese gut auslesen lässt:
Code:
' fills combobox with specified Recordset
Public Function FillComboBox(ByRef Rs As ADODB.Recordset, _
                             ByRef ctl As ComboBox, _
                             ByVal sFieldValue As String, _
                             ByVal sFieldID As String _
) As Boolean
    
    Dim sTmp    As String
    With ctl
        Call .Clear
        If (Rs.RecordCount = 0) Then
            FillComboBox = False
            Exit Function
        End If
        
        Call Rs.MoveFirst
        Do While (Not (Rs.EOF))
            sTmp = GetText(Rs.Fields(sFieldValue).Value)
            Call .AddItem(sTmp)
            .ItemData(.NewIndex) = Rs.Fields(sFieldID).Value
            Call Rs.MoveNext
        Loop
    End With
    Call Rs.MoveFirst
End Function

' reads text from rs.field,
' checks for NULL value and
' and returns string
Public Function GetText(ByRef vDBText As Variant _
) As String

    If (IsNull(vDBText)) Then
        GetText = vbNullString
    Else
        GetText = CStr(vDBText)
    End If
End Function

ItemData auswerten über angeklicktes Item:
Code:
' gets ComboBox Listindex
Public Function GetCboIndex(ByRef ctl As ComboBox _
) As Long
On Error Resume Next
    GetCboIndex = ctl.ItemData(ctl.ListIndex)
On Error GoTo 0
End Function


Gruß

DevHB
 
Zurück