Hur ska man göra om man vill ha en combobox med värden från 2 fält i en databas utan att använda kopplade kontroller? Jag vill fylla en combobox med värden från en tabell och sedan kunna få reda på ett id för detta värde, t ex en tabell med fälten "nyckel" och "värde". I comboboxen ska man se alla poster från fältet "värde" och man ska då kunna få reda på vilken "nyckel" som detta "värde" har. Jag vill alltså inte använda någon bunden kontroll. Kan man skapa flera kolumner i en combobox och t ex dölja den första (innehållande "nyckeln" och bara visa "värdet") och sedan avläsa värdet på nyckeln med t ex kontrollnamn.column(<index> ), eller hur ska man gå tillväga? Man kan ju tänka sig en lösning med dictionary-objekt där värdena slås upp, men detta innebär att ett nytt dictionaryobjekt måste skapas och fyllas för varje combobox.
I de vanliga comboboxarna (liksom i listboxarna) finns ju egenskapen ItemData, se exemplet nedan (som återfinns i MSDN).
Private Sub Form_Load()
' Fill List1 and ItemData array with
' corresponding items in sorted order.
list1.AddItem "Judy Phelps"
list1.ItemData(list1.NewIndex) = 42310
list1.AddItem "Chien Lieu"
list1.ItemData(list1.NewIndex) = 52855
list1.AddItem "Mauro Sorrento"
list1.ItemData(list1.NewIndex) = 64932
list1.AddItem "Cynthia Bennet"
list1.ItemData(list1.NewIndex) = 39227
End Sub
Private Sub List1_Click()
' Append the employee number and the employee name.
MsgBox list1.ItemData(list1.ListIndex) & " " & list1.List(list1.ListIndex)
End Sub
Mitt problem är att jag måste använda Comboboxen i Microsoft Forms 2 (vilken inte stödjer egenskapen ItemData), eftersom den vanliga comboboxen inte han ha egenskapen appearance satt till 0 - Flat (vilket krävs i mitt projekt).
131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe