Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Combobox

Celeron [21.12.2006 17:27:38]

#

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ä?

Tumppu [22.12.2006 13:11:18]

#

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

Antti Laaksonen [22.12.2006 18:52:58]

#

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.

Celeron [24.12.2006 20:55:09]

#

Kiitos paljon ohjeista!!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta