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 ?
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)
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?
Joo, Senkun laitat vain kaikki lukemis koodit sinne Command8_click() aliohjelmaan. Millä koodirivillä saat tuon virheilmoituksen?
Tällä rivillä tulee
Text0.Text = maa
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
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
Aihe on jo aika vanha, joten et voi enää vastata siihen.