webForumDet fria alternativet

combobox och databaser (okopplat)

.NETur .NET

2 svar · 250 visningar · startad av d_jonsson

Medlem sedan mars 200113 inlägg
Frågan#1

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.

Några idéer ang. detta?

Medlem sedan juli 20011 304 inlägg
#2

Kommer inte riktigt ihåg hur det var med comboboxen, men finns det inte en .tag property för varje rad (index) i den?

Det finns i varje fall i imagecombon.

Där är det perfekt att lagra en nyckel av nåt slag och sedan ta ut och använda när användaren klickar på tillhörande värde.

------------------
The computer is mightier than the pen, the sword, and usually, the programmer.

Medlem sedan mars 200113 inlägg
#3

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
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)