Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: funktiosta arvo toiseen funktioon

Belaeryth [31.01.2005 00:57:50]

#

Moro taasen,

Eli ongelmana on tällainen:

Minulla on nyt funktiot

- tarkastaKayttaja(), jolle tuodaan textboxin nimet formista

- tallennaKayttaja(), joka tallentaa tarkastaKayttaja() -funktiosta i:n arvon

- annaKayttaja(), jonka pitäisi saada i:n arvo vastaan ja lähettää käyttäjän tiedot eteenpäin

Mitenkähän tuo nyt sitten onnistuu?

Function tallennaKayttaja(ByVal varmistus As Integer) As Integer
    Dim varmistus2 As Integer
    varmistus = varmistus2
End Function

Function tarkastaKayttaja(ByVal textbox, ByVal textbox2)
    Dim i, x As Integer
    Dim aloitus2 As New aloitus2
    Dim k(3) As kayttajat

    With k(0)
          .kayttaja = "a0001"
          .salasana = "1234"
    End With

    With k(1)
        .kayttaja = "a0002"
        .salasana = "4321"
    End With

    With k(2)
        .kayttaja = "a0003"
        .salasana = "2143"
    End With


    For i = 0 To 2
      If textbox.Text = k(i).kayttaja And textbox2.Text = k(i).salasana Then

            tallennaKayttaja(i)
            aloitus2.ShowDialog()
        End If
    Next i
End Function

Function AnnaKayttaja()

End Function

esakom [31.01.2005 14:35:41]

#

Tuo tallennaKayttaja taitaa olla poskellaan. Jos ymmärsin oikein, niin sen pitäisi laittaa tuo i talteen, jonka se saa varmistus-parametrina. Jos tuon AnnaKayttajan pitäisi tietää kyseisen parametrin arvo myöhemmin, esim. jonkun painonapin takaa, niin parametri täytyy tallentaa johonkin globaaliin muuttujaan.

Jos et käytä funktioita palauttamaan mitään arvoja, ne voi yhtä hyvin olla subeja.

Esimerkiksi (oletan että tuo tarkastaKayttaja toimii, en viitsinyt testata):

'ihan formin koodin alussa
Dim varmaI as Integer

Sub tallennaKayttaja(ByVal varmistus As Integer) 'tämä voi olla ihan sub
    varmaI = varmistus
End Sub

Sub tarkastaKayttaja(ByVal textbox, ByVal textbox2) 'tämäkin voi olla sub
        Dim i, x As Integer
        Dim aloitus2 As New aloitus2
        Dim k(3) As kayttajat

        With k(0)
              .kayttaja = "a0001"
              .salasana = "1234"
        End With

        With k(1)
            .kayttaja = "a0002"
            .salasana = "4321"
        End With

        With k(2)
            .kayttaja = "a0003"
            .salasana = "2143"
        End With


        For i = 0 To 2
          If textbox.Text = k(i).kayttaja And textbox2.Text = k(i).salasana Then

                tallennaKayttaja(i)
                aloitus2.ShowDialog()
                Exit For 'jos käyttäjä löytyi, seuraavia ei tarvitse tarkastaa, vai kuinka?

            End If
        Next i
    End Sub

    Sub AnnaKayttaja() 'tämäkin voi olla sub
         'nyt täällä tiedetään että i on muuttujassa varmaI
         MsgBox CStr(varmaI)
    End Sub

Belaeryth [31.01.2005 16:03:34]

#

Kiitoksia!

Taas löytyi apu:) Tein toisen version kyseisestä koodista... paljon pitemmän kaavan kautta, mutta toimii kuitenkin..
Tuo on silti selkeämpi..

Kiitoksia vielä kerran:D

Vastaus

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

Tietoa sivustosta