Toon posts:

[vb] < 10 controle.

Pagina: 1
Acties:
  • 45 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik ben voor school een rapportsysteem aan het maken.
Nu werkt het alleen nog niet helemaal lekker
wanneer ik een cijfer wil invoeren groter dan 10. (dan moet het proggie normaal een foutmeldng geven)

Nu dacht ik dat ik dat makkelijk kon doen door de volgende formule.

Maar

If txtcijfer2.Text > 10 Then
txtcijfer2.Text = Format("fout")

werkt op 1 of andere manier niet goed.

wanneer ik de 10 tussen haakjes ziet. dan ziet ie het
als een 1 en een 0... en dan krijg je nog geen lekkere
controle.

iemand tips??

----------------------------------------------------------------
Private Sub txtcijfer2_Change()

If txtcijfer2.Text > 10 Then
txtcijfer2.Text = Format("fout")

Else


If IsNumeric(txtcijfer1.Text) And IsNumeric(txtcijfer2.Text) And IsNumeric(txtcijfer3.Text) And IsNumeric(txtcijfer4.Text) Then
txtgemiddeld.Text = Format((CDbl(txtcijfer1.Text) + CDbl(txtcijfer2.Text) + CDbl(txtcijfer3.Text) + CDbl(txtcijfer4.Text)) / 4, "#0.0")
txtgemiddeld.ForeColor = vbButtonText

Else

txtgemiddeld.Text = "#ERROR"
txtgemiddeld.ForeColor = vbRed

End If
End If

End Sub
----------------------------------------------------------------

screenie van proggie
http://members.home.nl/snipsel/vb.jpg

  • WimB
  • Registratie: Juli 2001
  • Laatst online: 30-03-2024
code:
1
If Int(txtcijfer2.Text) > 10 Then txtcijfer2.Text = "fout"

Je krijgt dan wel een foutmelding als je geen numerieke waarde ingeeft, maar met een KeyPress kan je er wel voor zorgen dat de gebruiker alleen numerieke waarden in dat veld kan ingeven

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
IF(val(txtcijfer.text)>10) THEN
txtcijfer.text="ERROR"
END IF

  • tomato
  • Registratie: November 1999
  • Niet online
Er zal in VB vast en zeker ook een string_to_integer() functie zijn...

[edit] Te laat, is dus int() ;)

Maar behalve alleen numerieke input toestaan in het tekstveld is het wel netjes toch nog even de inhoud te checken met bijvoorbeeld isNumeric()

  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Even voor de duidelijkheid, int() is strikt genomen niet de conversie functie van String naar Integer maar retourneert het integer-gedeelte van een getal. Omdat VB intern aan typecasting doet kan je het wel gebruiken om strings om te zetten.

In dit geval zou ik het echter niet gebruiken want getallen als 10.5 worden dan ook geaccepteerd, in je code gebruik je al CDbl en die kun je dan het beste gebruiken.
En zoals tomato al zei, eerst een IsNumeric() gebruiken voordat je getallen omzet is wel zo netjes.

Ook zou ik de controle niet in het Change event zetten maar in de LostFocus of zo, want het Change event treedt op voor elke letter/cijfer die in de textbox wordt ingevoerd en ook als je vanuit code de inhoud van de textbox wijzigt.
Als je in het Change event van een textbox de inhoud van dezelfde textbox weer wijzigt kan je in een oneindige loop komen omdat het Change event steeds optreedt, nu gaat het nog goed omdat je de textbox altijd dezelfde waarde geeft bij een fout.

Verwijderd

Al aan gedacht het gewoon onmogelijk te maken iets anders in te voeren dan cijfertjes?
code:
1
2
3
4
Private Sub TextBoxje_KeyPress(KeyAscii As Integer)
  If Not IsNumeric(Chr(KeyAscii)) & _
     And KeyAscii > 31 Then KeyAscii = 0
End Sub

zoiets zegmaar...

Verwijderd

Topicstarter
hmmm heb al jullie tips gevogt en geprobeerd echter niets werkt ik wordt er helemaal panisch van..... zit al dikke 2 uur achter hetzelfde probleem te prutsen en nog geen oplossing :(


ik durf het haast niet te vragen..... maar wie wil... mag het eens proberen.. hier is de source te downen.

http://members.home.nl/snipsel/Form1.frm
http://members.home.nl/snipsel/Project1.vbp

Verwijderd

Op zondag 07 april 2002 23:15 schreef Snippie het volgende:
ik durf het haast niet te vragen..... maar wie wil... mag het eens proberen.. hier is de source te downen.
Kriezus wat een puinhoop! Zet al je textboxjes es in een control array? maakt je programma 'n stuk overzichtelijker denk ik.

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

dusty

Celebrate Life!

string naar integer functie is simpel manual werk,

Vragen of iemand het voor je wilt doen is helemaal uit den bozen hier.

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

Pagina: 1

Dit topic is gesloten.