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 Sub
Henkilö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 Sub
Tumpun 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.