Archief - [PROG][VB5.0] Variabelen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

zero roofer

Legacy Member
Ik zit met het volgende probleem: ik heb twee variabelen gedeclareerd als Integers, aangezien ik een soort 'rekenmachine' moet ontwerpen. de variabelen zijn Getal1 en Getal2. Nu, alles werkt goed, tot ik aan de vierkantswortels kom, dan moet ik dus de wortel van Getal1 nemen, code en al werkt, maar het probleem is, als er geen getal in het vak van Getal2 staat (dus bijvoorbeeld nog tekst of gewoon niks), dan krijg ik een error 'type mismatch'. Ik moet dus met andere woorden, als ik 'vierkantswortel' geselecteerd heb de variabele Getal2 niet meer gedeclareerd hebben als Integer. Ik weet niet hoe ik dit kan doen, kan iemand mij helpen? De code die ik heb:

Code:
Private Sub CmdBereken_Click()
    Dim Getal1 As Integer
    Dim Getal2 As Integer
    Getal1 = TxtGetal1
    Getal2 = TxtGetal2

    Select Case CboKeuze.ListIndex
    Case 0
    Uitkomst = Getal1 + Getal2
    Case 1
    Uitkomst = Getal1 - Getal2
    Case 2
    Uitkomst = Getal1 * Getal2
    Case 3
    Uitkomst = Getal1 / Getal2
    Case 4
    Uitkomst = Getal1 \ Getal2
    Case 5
    Uitkomst = Getal1 ^ Getal2
    Case 6
    Uitkomst = Getal1 Mod Getal2
    Case 7
    Uitkomst = Getal1 ^ 0.5
    End Select
    
    TxtUitkomst.Text = Uitkomst
    
End Sub

Als er iets niet duidelijk is in mijn uitleg, vraag het dan maar. Ik hoop dat iemand me kan helpen.

zero roofer

Suicide Monkey

Legacy Member
Ik ben geen vb expert (ben wel soms eens bezig met vba onder excel) maar volgens mij ligt het aan getal2 die een integer is en dus geen cijfers na de komma kan weergeven. Maak van getal 1 en getal2 eens een double ofzo

R3Deye

Legacy Member
zero roofer zei:
... maar het probleem is, als er geen getal in het vak van Getal2 staat (dus bijvoorbeeld nog tekst of gewoon niks), dan krijg ik een error 'type mismatch'. ...
Eerste kijken of de inhoud van de textboxen wel numeriek is.

zero roofer zei:
... Ik moet dus met andere woorden, als ik 'vierkantswortel' geselecteerd heb de variabele Getal2 niet meer gedeclareerd hebben als Integer. ...
:oink:

Gebruik als eerder vermeld Single of Double.
Code:
Private Sub CmdBereken_Click()

' bewerkingen doen als de textboxen nummers bevatten
If IsNumeric(TxtGetal1.Text) And IsNumeric(TxtGetal2.Text) Then

    Dim Getal1 As Single
    Dim Getal2 As Single
    Getal1 = TxtGetal1.Text
    Getal2 = TxtGetal2.Text
    
    ' de uitkomst variable declaren!
    Dim Uitkomst As Single
    
    Select Case CboKeuze.ListIndex
    Case 0
    Uitkomst = Getal1 + Getal2
    Case 1
    Uitkomst = Getal1 - Getal2
    Case 2
    Uitkomst = Getal1 * Getal2
    Case 3
    Uitkomst = Getal1 / Getal2
    Case 4
    Uitkomst = Getal1 \ Getal2
    Case 5
    Uitkomst = Getal1 ^ Getal2
    Case 6
    Uitkomst = Getal1 Mod Getal2
    Case 7
    Uitkomst = Getal1 ^ 0.5
    End Select
    
    TxtUitkomst.Text = Uitkomst
    
Else
    MsgBox "Velden zijn niet numeriek."
End If
    
End Sub

zero roofer

Legacy Member
ik merk net dat dit ook niet helpt, het moet dus wel degelijk werken als in TxtGetal1 een getal staat, en in TxtGetal2 ook tekst

Jerre Muesli

Legacy Member
Zowieso moet ge het intypen van letters onmogelijk maken he.
Ma voor het getal2 probleem kunt ge misschien zetten bij de declaratie dat 0 default value is ?
Dim getal2 As Integer = 0

Enygm

Legacy Member
zero roofer zei:
ik merk net dat dit ook niet helpt, het moet dus wel degelijk werken als in TxtGetal1 een getal staat, en in TxtGetal2 ook tekst

Hoe kan dit nu werken als in txtGetal2 een tekst staat? Met tekst kun je toch niet rekenen?

werk eventueel met:

Code:
if not(isnumeric(txtGetal1.Text) and isnumeric(txtGetal2.Text)) then
   msgbox "u dient getallen in te geven", vbokonly+vbexclamation, "incorrecte input"
   exit sub
end if

Darth-Falcon

Legacy Member
in ieder geval geen integers gebruiken, die zijn alleen voor gehele getallen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan