Vikuroiva Visual Basic

Tuskantäyteisistä yrityksistäni huolimatta en saa Visual Basic 6.0:lla aikaiseksi silmukkaa,
joka noukkisi käyttäjän syöttämät tiedot TextBoxista. Jos sen sijan vaihdan textboxin tilalle InputBoxin, niin johan systeemi toimii kuin unelma…

Miten ihmeessä saa aikaan esimerkiksi laskimen, joka kysyy käyttäjältä lukuja yhteen Textboxiin ja tulostaa aina niiden summan toiseen TextbBoxiin CommandButtonin kautta? Lopuksi pitäisi myös ilmoittaa käyttäjälle summauksien lukumäärä.

Olen testannut mm. sellaista pientä esimerkkiohjelmaa, jossa kysytään käyttäjältä Englannin pääkaupunkia ja annetaan kolme mahdollisuutta tietää oikea vastaus. Toimiva, InputBoxeilla toteutettu koodi näyttää tältä:


Private Sub Form_Load()
Dim Vastaus$
For i = 1 To 3
Vastaus$ = InputBox("Mikä on Englannin pääkaupunki?")
If Vastaus$ = "Lontoo" Then
MsgBox ("Oikein! Arvausten lukumäärä oli PERÄTI " & i)
End
Exit For
End If
Next i
MsgBox ("Väärin! Kolmella tyrimisellä olet heikoin lenkki. Hyvästi!")
End
End Sub

Kun vaihdan InputBoxin kohdalle esim. Vastaustxt.Text (kyseinen objekti on tietenkin lisättynä käyttöliittymässä), ohjelma toimii oikein vain siihen asti, jos käyttäjä tietää vastauksen heti ensimmäisellä kerralla. Jos Textboxiin kirjoittaa jotain muuta kuin Lontoo, ohjelma hyppää oitis silmukan loppuun ja heittää käyttäjälle hyvästit.

Missä menee vikaan? Mahdollisimman selkokielinen vastaus, pyydän!
3483
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

InputBox näyttää sen dialogi-ikkunan eli vastausta voi muuttaa silmukassa.

Äänestä

Dim summa As Integer, k As Integer
Private Sub Form_Load()
summa = 0: k = 0
End Sub
Private Sub Command1_Click()
k = k 1
summa = summa Val(Text1)
Text2 = summa
Label1 = "Summauksia " & k
End Sub

Äänestä

IF lausetta kannattaa/pitää useampirivisenä käyttää muodossa
IF ...THEN
...
ELSE
...
END IF

Äänestä

Kommentoi aloitusta


Nuudeli kirjoitti:

Tuskantäyteisistä yrityksistäni huolimatta en saa Visual Basic 6.0:lla aikaiseksi silmukkaa,
joka noukkisi käyttäjän syöttämät tiedot TextBoxista. Jos sen sijan vaihdan textboxin tilalle InputBoxin, niin johan systeemi toimii kuin unelma…

Miten ihmeessä saa aikaan esimerkiksi laskimen, joka kysyy käyttäjältä lukuja yhteen Textboxiin ja tulostaa aina niiden summan toiseen TextbBoxiin CommandButtonin kautta? Lopuksi pitäisi myös ilmoittaa käyttäjälle summauksien lukumäärä.

Olen testannut mm. sellaista pientä esimerkkiohjelmaa, jossa kysytään käyttäjältä Englannin pääkaupunkia ja annetaan kolme mahdollisuutta tietää oikea vastaus. Toimiva, InputBoxeilla toteutettu koodi näyttää tältä:


Private Sub Form_Load()
Dim Vastaus$
For i = 1 To 3
Vastaus$ = InputBox("Mikä on Englannin pääkaupunki?")
If Vastaus$ = "Lontoo" Then
MsgBox ("Oikein! Arvausten lukumäärä oli PERÄTI " & i)
End
Exit For
End If
Next i
MsgBox ("Väärin! Kolmella tyrimisellä olet heikoin lenkki. Hyvästi!")
End
End Sub

Kun vaihdan InputBoxin kohdalle esim. Vastaustxt.Text (kyseinen objekti on tietenkin lisättynä käyttöliittymässä), ohjelma toimii oikein vain siihen asti, jos käyttäjä tietää vastauksen heti ensimmäisellä kerralla. Jos Textboxiin kirjoittaa jotain muuta kuin Lontoo, ohjelma hyppää oitis silmukan loppuun ja heittää käyttäjälle hyvästit.

Missä menee vikaan? Mahdollisimman selkokielinen vastaus, pyydän!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu