[VB] Textbox fout *

Pagina: 1
Acties:
  • 173 views sinds 30-01-2008
  • Reageer

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Ik heb een vraagje...ik ben bezig met het maken van een klein simpel programma waarmee heel invoudig getallen opgeteld kunnen worden.

De bedoeling is een invoervak waar steeds de getallen ingevoerd moeten worden en rechts een hoop textboxen waar de getallen in moeten komen te staan.

Wanneer ik een getal heb ingevuld zou ik graag hebben dat het getal na een druk op de enter knop naar een textbox (rechts)verhuist.

Op zich lukt dit wel maar hoe moet zoiets wanneer je dus constant door wilt gaan met het invoeren van getallen?
Dus zeg maar eerst het getal wegschrijven naar textbox1.text, wanneer er nog een getal wordt ingevuld en op enter gedrukt wordt moet het naar het 2e textvak geschreven worden, dan het 3e, 4e etc.

De code die ik tot nu toe heb is:
code:
1
2
3
4
5
6
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
i = i + 1
    Text [i].Text = Text1(0).Text
End if
End Sub

met dank aan Mr-FaTMeN

Dit wordt dus niet gepikt..hij struikelt over dit stukje
Text (i).Text

Wie kan mij helpen om de juiste code te krijgen?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • MatHack
  • Registratie: Oktober 2001
  • Niet online

MatHack

Dev by day, Gamer by night

Je typt zelf het antwoord al :P

Je moet zeggen Text(i).Text en niet Text[i].Text

There's no place like 127.0.0.1


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 16:06 schreef MatHack het volgende:
Je typt zelf het antwoord al :P

Je moet zeggen Text(i).Text en niet Text[i].Text
Dan krijg ik nog steeds diezelfde foutmelding:

Afbeeldingslocatie: http://home.wanadoo.nl/entrefice/GoT/text.gif

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op dinsdag 05 februari 2002 16:12 schreef --Erik-- het volgende:
[..]
Dan krijg ik nog steeds diezelfde foutmelding:
Wel erg simpel, de variabele "TEXT" bestaat niet.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 16:17 schreef dusty het volgende:

[..]

Wel erg simpel, de variabele "TEXT" bestaat niet.
Ik weet niet veel (bijna niks) van vb af dus simpel is het zeker niet voor me, zou je me verder willen helpen?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Je hebt een textbox die "text1" heet. Toevallig is dat een array, dus moet je ze aanspreken met text1(x).text enzo... Je moet dus alleen even een 1 voor die haakjes zetten :)

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 16:29 schreef Battle_Bunny het volgende:
Je hebt een textbox die "text1" heet. Toevallig is dat een array, dus moet je ze aanspreken met text1(x).text enzo... Je moet dus alleen even een 1 voor die haakjes zetten :)
Ok heb er het volgende van gemaakt:
code:
1
2
3
4
5
6
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
i = i + 1
    Text1(i).Text = Text1(0).Text
End If
End Sub

Nu krijg ik deze foutmelding:
Afbeeldingslocatie: http://home.wanadoo.nl/entrefice/GoT/340.gif

Als ik die 1 vervang door een 2 (Text2(i).text = Text1(0).text) dan schrijft ie hem wel weg maar blijft ie hem wegschrijven naar text2.text..

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Misschien is het handig dat je:

1. Je controls een goede naam geeft (I.E.: Text1 => txtInput, Text2 => txtOutput, Command1 => cmdCalculate, etc)
2. Dat je even een screenshot maakt van je form (form1 :+ ), zodat ik (we?) kunnen zien wat je eigenlijk wilt... Want ik volg het niet helemaal meer.

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Oke momentje..zal het even duidelijker maken!

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • Anakin239
  • Registratie: September 2001
  • Laatst online: 14-09 13:28
Dit gaat sowieso niet werken als je i niet modulair vast houdt, anders wordt iedere keer de eerste tekstbox geupdate.

En als je de controls niet in een array hebt moet je er een select case omheen zetten om de juiste control te updaten

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Dit is het formulier:

Afbeeldingslocatie: http://home.wanadoo.nl/entrefice/GoT/form.gif

Als ik bij input iets invoer en op enter druk wil ik het rechts in de output-textbox krijgen.
De 1e keer op enter drukken wordt dus van input naar output1
2e keer op enter drukken van input naar output2 enz.

Hopelijk is het nu een beetje duidelijker?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • Anakin239
  • Registratie: September 2001
  • Laatst online: 14-09 13:28
Als de outputvelden geen array zijn moet je het denk ik zo doen

Private i as integer

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
i = i + 1
select case i
case 1
output1.text = text1.text
case 2
output2.text = text1.text
enz....

End If
End Sub

een andere oplossing als de controls in een control array staan is

Private i as integer

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
i = i + 1
output(i).text = text1.text

End If
End Sub


In beide gevallen is wel dat I modulair gedefinieerd moet zijn.

Of je kan iedere textbox testen of deze leeg is dan kan je hem vullen en zo alle boxen langsgaan

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Ok het is gelukt met de volgende code:
code:
1
2
3
4
5
6
7
Private i As Integer
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
i = i + 1
Text2(i).Text = Text1(0).Text
End If
End Sub

Nu worden de textboxen rechts netjes gevuld, heel mooi!
Hardstikke bedankt alvast!
Maar nu nog een paar dingetjes, hoe zorg ik ervoor dat de Input leeg is na het drukken op de enter toets?
Anders moet ik iedere keer de cijfers handmatig weghalen na een getal getypt te hebben..

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


Verwijderd

text(0).text = ""

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 17:55 schreef Hompie het volgende:
text(0).text = ""
Dank je! :)

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Oke ben nog ff aan het klooien gegaan maar krijg het niet voor elkaar...hoe kan ik alle getallen in de text2(1).text t/m text2(20) laten optellen en daar de uitkomst van in een andere textbox laten zien?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


Verwijderd

code:
1
2
3
4
5
dim totaal as integer/ long /single /double, i as integer

for i = 1 to 20
   totaal = totaal + text2(i).text 
next i

edit: typo

zoiets?

  • Anakin239
  • Registratie: September 2001
  • Laatst online: 14-09 13:28
Dim intcounter as integer
Dim dblResult as double

For intcounter = 1 to 20 'of 0 tot 19, maar net hoe je ze genummerd hebt
dblresult = dblresult + cdbl(text2(intcounter).text)
next intcounter

textresult.text = dblresult

/edit
oeps net te laat
\edit

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 19:04 schreef Hompie het volgende:
code:
1
2
3
4
5
dim totaal as integer/ long /single /double, i as integer

for i = 1 to 20
   totaal = totaal + text2(i).text 
next i

edit: typo

zoiets?
Nee werkt niet, integer/ long /single /double, wil ie niet pakken en als ik dat eruit haal en er dit van maak:
code:
1
2
3
4
5
6
Private Sub Text23_Change()
Dim Text23 As Integer, i As Integer
For i = 1 To 20
   Text23.Text = Text2(i).Text
Next i
End Sub

wil het nog niet echt lukken..

ff ter informatie..text23.text is de textbox waarin het totaalbedrag moet komen te staan..

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 19:07 schreef Anakin239 het volgende:
Dim intcounter as integer
Dim dblResult as double

For intcounter = 1 to 20 'of 0 tot 19, maar net hoe je ze genummerd hebt
dblresult = dblresult + cdbl(text2(intcounter).text)
next intcounter

Text23.text = dblresult
Dit heb ik geprobeerd..lukt ook niet echt..
Oja..wat vet is heb ik aangepast in m'n code..

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Deze code heb ik trouwens in de change event gezet van text23.text (textbox waar dus eindbedrag in moet komen te staan).
Da's goed toch he?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


Verwijderd

Als ie het doet, dan is het goed.

Maar ik denk dat jij eens een beginners cursus vb moet doen, uit een boek ofzo. Zonder dat ik je wil belediggen, maar je niveau is eigenlijk een beetje laag voor P & W.

Verwijderd

Op dinsdag 05 februari 2002 19:23 schreef --Erik-- het volgende:
Deze code heb ik trouwens in de change event gezet van text23.text (textbox waar dus eindbedrag in moet komen te staan).
Da's goed toch he?
Nee, dan gaat ie pas tellen als je iets veranderd in het eindantwoord.

Maak gewoon een "bereken" knop.

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 19:37 schreef Hompie het volgende:
Als ie het doet, dan is het goed.

Maar ik denk dat jij eens een beginners cursus vb moet doen, uit een boek ofzo. Zonder dat ik je wil belediggen, maar je niveau is eigenlijk een beetje laag voor P & W.
Ik snap wat je bedoelt ja..maarja van de andere kant, waarom niet hier vragen?
Diegene die het niveau te laag vinden slaan het topic over..diegene die helpen willen helpen...kan me niet voorstellen dat iemand hier last van heeft ofzo?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • Anakin239
  • Registratie: September 2001
  • Laatst online: 14-09 13:28
Je nivo is inderdaad wat laag, maar als het vervelend wordt dan krijg je gewoon geen antwoord meer.

Wat je kan doen om automatisch te laten berekenen is dat als je op enter drukt bij het invoeren dat je dan ook het totaal weer opnieuw laat uitrekenen.

Verwijderd

Op dinsdag 05 februari 2002 19:41 schreef --Erik-- het volgende:

[..]

Ik snap wat je bedoelt ja..maarja van de andere kant, waarom niet hier vragen?
Diegene die het niveau te laag vinden slaan het topic over..diegene die helpen willen helpen...kan me niet voorstellen dat iemand hier last van heeft ofzo?
Het probleem is een beetje dat als er heel veel topics komen met een laag niveau, dat de (ver-)gevorderde VB'er dan weg blijft, omdat het dan "saai" wordt hier. Als je dan een echt moeilijk probleem hebt wat niet in een boek of op internet staat, is er niemand hier die het kan oplossen.

Verder kunnen veel p&w'ers slecht tegen een los-jij-het-maar-even-voor-mij-op-mentaliteit.

Daarom proberen we het niveau "hoog" te houden.

Maar ik zal je blijven helpen hoor ;)

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 20:07 schreef Anakin239 het volgende:
[....]

Wat je kan doen om automatisch te laten berekenen is dat als je op enter drukt bij het invoeren dat je dan ook het totaal weer opnieuw laat uitrekenen.
Dit bedoel ik ook ja..maarja..dat krijg ik dus niet voor elkaar..

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 20:08 schreef Hompie het volgende:

[..]

Het probleem is een beetje dat als er heel veel topics komen met een laag niveau, dat de (ver-)gevorderde VB'er dan weg blijft, omdat het dan "saai" wordt hier. Als je dan een echt moeilijk probleem hebt wat niet in een boek of op internet staat, is er niemand hier die het kan oplossen.

Verder kunnen veel p&w'ers slecht tegen een los-jij-het-maar-even-voor-mij-op-mentaliteit.

Daarom proberen we het niveau "hoog" te houden.

Maar ik zal je blijven helpen hoor ;)
Het lastige is dat MSDN niet toegankelijk is bij mijn vb 6.0 versie..en op internet zoek ik ook echt wel hoor..alleen deze "simpele" dingen kan ik echt nergens vinden..

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


Verwijderd

Op dinsdag 05 februari 2002 20:16 schreef --Erik-- het volgende:

[..]

Het lastige is dat MSDN niet toegankelijk is bij mijn vb 6.0 versie..en op internet zoek ik ook echt wel hoor..alleen deze "simpele" dingen kan ik echt nergens vinden..
msdn.microsoft.com :?

Verwijderd

Maak gewoon een knop waarachter je dat optel subje zet. Dan klik je daar op om de boel te berekenen.

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 20:19 schreef Hompie het volgende:

[..]

msdn.microsoft.com :?
:o

Thnx, soms is het ook TE simpel! :)

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 20:24 schreef dev het volgende:
Maak gewoon een knop waarachter je dat optel subje zet. Dan klik je daar op om de boel te berekenen.
Zal ik eens doen.. :)

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • gotcha
  • Registratie: Oktober 1999
  • Laatst online: 29-07 18:20
Het lastige is dat MSDN niet toegankelijk is bij mijn vb 6.0 versie..en op internet zoek ik ook echt wel hoor..alleen deze "simpele" dingen kan ik echt nergens vinden..
msdn is ook niet echt de meest geschikte beginnersguide nee, is toch meer bedoeld als (enorm uitgebreid) naslagwerk.
maar probeer VBWorld eens, als je deze tutorials doorwerkt (te beginnen bij de visual basic tutorials 1 tm 6) dan heb je dit soort basisdingen snel in de vingers (en als extra bonus zijn de tutorials vaak nog amusant geschreven ook :))

  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op dinsdag 05 februari 2002 20:40 schreef gotcha het volgende:

[..]

msdn is ook niet echt de meest geschikte beginnersguide nee, is toch meer bedoeld als (enorm uitgebreid) naslagwerk.
maar probeer VBWorld eens, als je deze tutorials doorwerkt (te beginnen bij de visual basic tutorials 1 tm 6) dan heb je dit soort basisdingen snel in de vingers (en als extra bonus zijn de tutorials vaak nog amusant geschreven ook :))
Goeie tip, ik ga de tutorials zeker doornemen, bedankt! :)

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Even een laatste vraag..ik ben bijna klaar alleen struikel nog over 1 ding:

Als ik de velden heb gevuld met cijfers en ik ze leeg wil maken druk ik dus op zo'n knop die de velden leeg maakt, geen probleem dus.
Als de velden zijn geleegd en ik ze wil invullen dan gebeurd er het volgende:
Afbeeldingslocatie: http://home.wanadoo.nl/entrefice/GoT/1b.gif

De velden worden niet opnieuw in text1.text overgenomen maar gaan verder in het veld waar ie gebleven was toen ik op "Velden wissen" drukte..

Hoe zorg ik ervoor dat de cijfers wel worde overgenomen in text1.text ?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 23:18

NetForce1

(inspiratie == 0) -> true

Op vrijdag 08 februari 2002 20:55 schreef --Erik-- het volgende:
Even een laatste vraag..ik ben bijna klaar alleen struikel nog over 1 ding:

De velden worden niet opnieuw in text1.text overgenomen maar gaan verder in het veld waar ie gebleven was toen ik op "Velden wissen" drukte..

Hoe zorg ik ervoor dat de cijfers wel worde overgenomen in text1.text ?
je teller weer op 1 zetten?

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op vrijdag 08 februari 2002 21:13 schreef NetForce1 het volgende:

[..]

je teller weer op 1 zetten?
Hoe doe ik dat?
Is het niet kwestie van 1 regeltje vb-code toevoegen aan de code van de knop "velden wissen"?
En wat voor een regeltje zou dat moeten zijn dan?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 23:18

NetForce1

(inspiratie == 0) -> true

Je teller is toch i?

Dan moet je dit erin zetten:

i = 1, of i = 0. 'k weet niet precies wanneer er een bijgeteld wordt in een for-loop.

je moet i wel declareren in General, zodat 'ie voor de hele module toegankelijk is, anders heeft het nog geen zin.

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Op vrijdag 08 februari 2002 21:21 schreef NetForce1 het volgende:
Je teller is toch i?

Dan moet je dit erin zetten:

i = 1, of i = 0. 'k weet niet precies wanneer er een bijgeteld wordt in een for-loop.

je moet i wel declareren in General, zodat 'ie voor de hele module toegankelijk is, anders heeft het nog geen zin.
i = 0 dat was hem, thnx!

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • --Erik--
  • Registratie: Juni 2001
  • Niet online
Nog 1 ding..
Als ik een getal invoer en op enter druk krijg ik een irritant geluidje..hoe krijg ik dat weg?

Hobbymatige blowerdoortest enthousiast (Retrotec) 💨. Interessant voor jouw huis? DM me maar!


  • Gé Brander
  • Registratie: September 2001
  • Laatst online: 15-06 23:37

Gé Brander

MS SQL Server

Op vrijdag 08 februari 2002 21:37 schreef --Erik-- het volgende:
Nog 1 ding..
Als ik een getal invoer en op enter druk krijg ik een irritant geluidje..hoe krijg ik dat weg?
Door nu toch echt eens te gaan zoeken op msdn.microsoft.com of vbworld zoals al eerder ge-opperd is. Door een paar keer door te zetten op die sites en het idee van het zoeken daar doorkrijgt, en niet meteen na 1 zoekopdracht die niets opleverd, de moed op te geven. Even doorzetten en je vind steeds meer, en je begint er steeds beter in te worden. Ik, en met mij vele anderen, hebben ook die moeilijke beginstappen moeten doorgaan. Vooral niet opgeven en eerst goed zoeken, www.google.com helpt ook als je het niet meer weet. Ga deze laatste vraag nu eerst maar eens een paar dagen zelf proberen op te lossen en als het je echt niet lukt dan mail je maar.

Vroeger was alles beter... Geniet dan maar van vandaag, morgen is alles nog slechter!

Pagina: 1