Nojoo, tämä saattaa taas naurattaa kokeneempia mutta kysynpä kuitenkin.
Elikkäs, pitäisi saada erilaisia lukuja tietokantaan(access). Törmäsin kerran aiemminkin tähän ongelmaa ja ratkaisin sen silloin siten, että tallensin luvut textbox:sta stringinä kantaan jossa sarakkeen muotona oli teksti. Siis luvut tekstinä kantaan. Tämä siis toimii MUTTA sen vähän, mitä tiedän tietokannoista niin olen ymmärtänyt, että lukujen tallentamisessa kantaa stringinä ei ole kovinkaan paljoa järkeä. Miten luvut kannattaisi siis sinne tallentaa? Olen yrittänyt seuraavaa mutta ei toimi
Dim luku1 as double luku1 = textbox1.text ' tästä tulee valitusta, myöskään textbox1.ToString ei toimi ' ja tässä olisi sitten se tietokanta yhteys jne.
Kannassa sarakkeen arvoksi olen laittanut luku -> desimaaliluku. Tämä ei siis toimi eli voisiko joku kertoa miten lukujen tallentaminen olisi selkeintä ja järkevintä?
Kokeile laittaa
Dim luku1 as double luku1 = CDbl(textbox1.Text)
Sitten tietty tuostakin tulee valitusta, jos se ei ole oikeasti numeerisessa muodossa.
Kiitos, tuollahan saa doublen pelaamaan. Mitenköhän se menee sitten integerin kanssa? En löytänyt konvertointia integeriksi. Saahan sen tietty siten, että asettaa accesissa sarakkeen arvoksi kokonaisluku, jolloin luku tallentuu ns. integerinä. Kuulostaa vaan vähän purkkasysteemiltä.
Toinen kyssäri: millä tavalla syötteen tarkistus kannattaisi tehdä? Siis se että tarkistetaan jo siinä textbox:ssa että syöte on integer tai double-tyyppistä?
CInt(teksti) tai CType(teksti, Integer)
IsNumeric(teksti)
CDbl(Teksti) tilallakin voi käyttää CType(teksti,Double)
Ja IsNumeric ei tarkista, mahtuuko luku esimerkiksi integer muuttujaan. Voit tehdä seuraavasti:
Dim luku As Integer If Integer.TryParse(Textbox1.text, luku) Then MsgBox("Luku oli OK 32-bit kokonaisluku") Else MsgBox("Annettu teksti ei ollut luku tai se oli liian iso 32-bittiseksi kokonaisluvuksi, tms. häikkää") End If
Kiitos. Nyt rullaa :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.