Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Tietojen luku formilta

mrkebab [07.06.2005 18:33:05]

#

Olen ihan vasta aloittanut VB opiskelun ja teen nyt access harjoitusta jossa formilta luen tiedot joiden perusteella sitten tehdään kysely. Nyt minulla vaikkapa taulukko jossa on

       MAA      AUTOMALLI    VUOSIMALLI
      suomi    henkilöauto  1999
      ruotsi   pakettiauto  2003
      suomi    pakettiauto  2002

Nyt minulla on formi jossa on 3 tekstiboksia joihin siis voi syöttää maan, automallin ja vuosimallin. Napilla tiedot luetaan sisään ja suoritetaan haku. Nyt tyssäsi heti siihen kohtaan jossa pitäisi lukea tiedot sisään. Eli jotain tälläistä olen viritellyt:

Option Compare Database

Private Sub Form_Load()

Dim maa As String
Dim automalli As String
Dim vuosimalli As Integer

Text0 = maa           'Text0 on eka tekstiboksi
Text2 = automalli     'Text2 on toinen tekstiboksi
Text4 = vuosimalli    'Text4 on kolmas tekstiboksi


Private Sub Command8_Click()
'Tähän tulisi sitten koodi jolla tiedot luetaan sisään
End Sub

Eli voiko tuolla tavalla lukea tiedot bokseista muuttujiin ?
Ja jos voi niin millä komennolla se sitten tuossa napissa tehdään ?

tuomas [07.06.2005 18:37:41]

#

Dim Muuttuja As string
Muuttuja = text1.text 'hakisi formin text1 kontrollin sisällön muuttujaan.

Toisinpäin onnistuu näin:

text1.text = Muuttuja 'formin text1 kontrolliin menisi "Muuttuja" nimisen muuttujan sisältö.

Jos sinun pitäisi saada luku tyyppiseen muuttuujaan luku tekstilootasta, käytä val() funktiota:

Dim Muuttuja As integer
    Muuttuja = val(text1.text)

mrkebab [07.06.2005 19:27:25]

#

Ok, Kiitoksia.

Nyt kun "ajan" ohjelman accesissa niin saan virheilmoituksen:

run-time error '2185'
you can't reference a property or method for a control unless thecontrol has focus

kelpaako tuo, että kirjoittaa kaikki koodit pelkästään tuon Private Sub Command8_Click()sisään?

tuomas [07.06.2005 19:42:18]

#

Joo, Senkun laitat vain kaikki lukemis koodit sinne Command8_click() aliohjelmaan. Millä koodirivillä saat tuon virheilmoituksen?

mrkebab [07.06.2005 20:49:09]

#

Tällä rivillä tulee

Text0.Text = maa

tuomas [07.06.2005 21:12:19]

#

Koodirivin syntaksissa ei pitäisi olla mitään vikaa. Tuo virhe ilmoitus viittaisi siihen että kontrolli jota käytetään ei ole aktiivinen (tai niin ainakin ymmärsin.)
kokeile laittaa ennen tuota text0.text = maa, tämä: text0.setfocus

mrkebab [07.06.2005 22:13:17]

#

Vielä tulee sama ilmoitus.

Eli nyt koodi on tälläinen:

Private Sub Command8_Click()

Dim maa As String
Dim automalli As String
Dim vuosimalli As Integer

Text0.SetFocus
Text0.Text = maa
automalli = Text2.Text
vuosimalli = Val(Text4.Text)

End Sub

Vastaus

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

Tietoa sivustosta