Pagina 1 van 1

wat met lege vakken

Geplaatst: 23 feb 2004, 23:01
door mark
Ik ben bezig met het leren van visual basic, ik heb nu een klein probleempje waar ik niet uit geraak, ik heb iets gemaakt waarbij een reeks simpele berekeningen gemaakt worden, nu is het probleem dat als één van de tekstvakken niet is ingevuld, ik steeds een foutmelding krijg, wat kan ik hieraan doen.

Geplaatst: 23 feb 2004, 23:31
door Sasuke
Staan je velden misschien als "mandatory" ? En zo niet , misschien moet je dit expliciet dan vermelden dat ze niet mandatory zijn ?

Grtz,

Sasuke

Geplaatst: 23 feb 2004, 23:39
door CueBoy
Het meest logische lijkt mij dat je tijdens je berekeningen rekening houdt met die lege vakken, ttz. rekenkundige functies kunnen slecht omgaan met spaties (of alfabetische karakters). Dus voordat je rekent : testen op inhoud.

lege vakke

Geplaatst: 23 feb 2004, 23:43
door mark
wa bedoelde met "mandatory", ik begin nog maar net met vb en ik zou niet weten wat je bedoeld, en bij de volgende stel ik de vraag, hoe kun je daar rekening mee houden, als je al de vakken nodig hebt.

Geplaatst: 23 feb 2004, 23:47
door Sasuke
Mark,

Mandatory = verplicht ... dat je programma dus verwacht dat elk veld opgevuld is met data. Maar ik vermoed dat cueboy's antwoord logischer/correcter is dan het mijne ... denk dat je inderdaad beter eens kijkt of je programma niet elk veld gaat bekijken en de inhoud gebruikt. Want als er dan niks instaat gaat je berekening niet meer kloppen. Controleren op inhoud kun je dus best doen , hoe ... dat weet ik ook niet .

Grtz,

Sasuke

Geplaatst: 23 feb 2004, 23:53
door CueBoy
Mark, ik ken op niet zo direct VB, maar kun je niet zeggen dat die vakken geen tekstvakken, maar velden zijn waar een numerische inhoud in moet komen, zijn ? (pfieuw, moeilijke zin - sorry daarvoor)

Geplaatst: 24 feb 2004, 00:20
door meon
VB is voor mij beetje lang geleden, maar in PHP kan je kijken of variabelen wel bestaan met de functie isset(), of gewoon uitroepingsteken, bvb if (!$variabele) { } ...

Ik wil maar zeggen, misschien moet je if-clauses inbouwen die eerst controleren of die velden wel ingevuld zijn of niet? En om rekenkundige redenen dan de inhoud met 0 invullen of zo...

Geplaatst: 24 feb 2004, 10:29
door The Oddity
Zou je eens een stukje code online willen zetten waarover het gaat dan kunnen we beter volgen...

een voorbeeldje wat zou moeten werken:

Code: Selecteer alles

lblResult.Text() = CInt(numVeld1.Text()) + CInt(numVeld2.Text())


Deze regel code telt gewoon twee tekstvelden bij elkaar op en plaatst de som in een label (lbl). Die CInt zorgt voor een conversie van String naar Int.. CDouble, CLong etc bestaan ook. Zie FCL zou ik zeggen.

Controle.. dacht dat er een method isNumeric of isString bestaat.. waarmee je kan checken..

wa the f*ck

Geplaatst: 03 maa 2004, 13:23
door mark

Code: Selecteer alles

Private Sub bereken_Click()
uitkomst.Text = (prijs * aantal) + (prijs * aantal / 100 * winst)
End Sub


dit is dus een deel van de code waar het fout gaat, stel nu dat ik in het vak winst niks invul, dan krijg ik een foutmelding en dat wil ik oplossen, wat is daarvoor het simpelste want ik snap er echt niet veel van.

Geplaatst: 03 maa 2004, 14:44
door Lukse
Zet er gewoon een if voor, bv.:

Code: Selecteer alles

if NOT(isNumeric(Prijs) AND isNumeric(Aantal) AND isNumeric(Winst)) then
  MsgBox "Foute ingave"
else
  uitkomst.Text = (prijs * aantal) + (prijs * aantal / 100 * winst)
end if

Geplaatst: 03 maa 2004, 14:44
door CoDE
Dit kan je heel makkelijk oplossen door een foutafhandeling.

Zo ga je te werk:

[+] Eerst natuurlijk al je variabelen declareren, en daaronder begin je

Code: Selecteer alles

Dim XXX As Integer
Dim YYY As Integer

On Error GoTo foutafhandeling


[+] Dan schrijf je je programma uit, en dan schrijf je tussen de laatste regel van je eigenlijk programma en "End Sub" dit:

Code: Selecteer alles

uitkomst.Text = (prijs * aantal) + (prijs * aantal / 100 * winst) 

Exit Sub 'Het programma zal hier stoppen als er geen fout voorkomt

foutafhandeling: 'hiernaar zal verwezen worden als er een fout voorkomt
Msgbox "Er is een fout opgtreden. Nummer " & Err.Number,,"Fout"

Exit Sub


Ik kom nog even terug op die Err.Number, daar zal hij het foutnummer weergeven. Probeer het zo eens, en laat dan een vakje leeg. Dan geeft hij bv. fout nummer 111. Dan kan je makkelijk bij foutafhandeling dit zetten:

Code: Selecteer alles

foutafhandeling:
If Err.Number = 111 Then
Msgbox "Vul al de vakjes in aub.",,"Opgelet!"
Else
Msgbox "Er is een fout opgtreden. Nummer " & Err.Number,,"Fout"
End If


Nog een andere optie dat je in het begin van het programma kan toepassen is dit:

Code: Selecteer alles

If Textbox1.Value = "" Then
Msgbox "Vul het tekstvak in aub.",,"Opgelet"
End If

ik ben er bijna

Geplaatst: 03 maa 2004, 15:48
door mark
als ik de variabelen decladeer of zoiets dan krijg ik een foutmelding als ik het programma wil laten lopen; "invalid outside procedure"

Geplaatst: 03 maa 2004, 16:13
door samson007
op elke plaats creeer je de variabelen ?

Geplaatst: 03 maa 2004, 17:30
door The_Borg
1/Mark: Werk je met VB.net of VB 6?

2/Post eens de ganse code, hoe lang die ook is.

thanks allot

Geplaatst: 03 maa 2004, 20:15
door mark
vb 6, maar het is opgelost, ik heb eens geprobeert wat lukske had gezegt, en het werkt, dus dat is voorlopig genoeg, ik ben aan een boek bezig met oefeningen en daar zat ik wat vast.

toch bedankt voor alle aangeboden hulp.