Hei!
Mulla on comboboxissa henkilöitä ja niiden tunnuksia. Siis yksi combon item on henkilön tunnus ja nimi. Kun valitsen jonkun combosta aktiiviseksi ja suoritan haun kyseisellä henkilöllä, mutta haku tulisi suorittaa tietokannasta joko nimen tai tunnuksen perusteella. Eli miten saan combon silleen, että käyttäjälle näkyy combossa tunnus ja nimi ja ohjelma käyttää henkilön hakeakseen vain tunnusta tai nimeä?
Pilko comboboxissa oleva henkilötunnus ja nimi ensiksi omiin muuttujiinsa esim näin:
Private Tiedot() As String Private Sub Combo1_Change() Tiedot = Split(Combo1.Text, " ") End Sub
jonka jälkeen voit käyttää niitä esim.:
Private Käyttäjä, Tunnus As String Käyttäjä=Tiedot(0) Tunnus=Tiedot(1)
ja suoritat ensin vaikka haun toisella ja sitten toisella.. :D
Jos tunnus on numero, sen voi liittää suoraan valintalistan ItemData-ominaisuuteen:
Private Sub Combo1_Click()
' ItemData kertoo tunnuksen
MsgBox Combo1.ItemData(Combo1.ListIndex)
End Sub
Private Sub Form_Load()
' lisätään listaan henkilöt
Combo1.AddItem "1: Henkilö 1"
Combo1.AddItem "2: Henkilö 2"
Combo1.AddItem "3: Henkilö 3"
' asetetaan vastaavasti tunnukset
Combo1.ItemData(0) = 1
Combo1.ItemData(1) = 2
Combo1.ItemData(2) = 3
End SubHenkilöiden tietoja voi myös säilyttää erikseen taulukossa:
Dim tiedot(10, 2) As String
Private Sub Combo1_Click()
' haetaan tiedot taulukosta
MsgBox "Tunnus: " + tiedot(Combo1.ListIndex, 0)
MsgBox "Nimi: " + tiedot(Combo1.ListIndex, 1)
End Sub
Private Sub Form_Load()
' määritetään henkilöt
tiedot(0, 0) = "ABC"
tiedot(0, 1) = "Henkilö 1"
tiedot(1, 0) = "DHJ"
tiedot(1, 1) = "Henkilö 2"
tiedot(2, 0) = "ESX"
tiedot(2, 1) = "Henkilö 3"
' lisätään listaan henkilöt
Dim i As Integer
For i = 0 To 2
Combo1.AddItem tiedot(i, 0) + ": " + tiedot(i, 1)
Next
End SubTumpun esittämä ratkaisu on myös toimiva, jos tunnuksen ja nimen erottaminen merkkijonosta onnistuu aina.
Kiitos paljon ohjeista!!
Aihe on jo aika vanha, joten et voi enää vastata siihen.