Conversion from String "" to type Integer is not valid

Status
Niet open voor verdere reacties.

Twanno5483

Gebruiker
Lid geworden
1 mrt 2009
Berichten
74
Hoi Allemaal,

Ik ben een beginner met vb en gebruik vs2010. Ik ben een klein programmaatje aan het ontwikkelen voor de voorraad bij te houden in mijn werkbus.
Nu de uitdaging waar ik tegen aan loop:
Ik heb in een formulier een TextBox waar ik een aantal kan invullen die ik van een bepaald product wil bijvullen of uitgeven via 2 Buttons. Hij telt dit dan op bij de voorraad van mijn geselecteerd product. Dit werkt allemaal.
Zodra ik vergeet de aantal in te vullen en op 1 van de 2 Buttons klik, krijg ik ook een MsgBox met de waarschuwing.
Alleen echter, zodra ik op OK druk in de MsgBox, krijg ik deze foutmelding:

Conversion from String "" to type Interger not valid.

Wat kan ik hieraan doen?

Code:
 Dim vrd As Integer
        Dim invoer As Integer
        Dim uitkomst As Integer

        If Aantal.Text = ("") Then
            MsgBox("Vul een waarde in")
        End If

        vrd = Art_VrdLabel1.Text
        invoer = Aantal.Text

        uitkomst = vrd + invoer
        Art_VrdLabel1.Text = uitkomst

Alvast bedankt.
Twan
 
Waarschijnlijk wordt de waarde die je in de textbox typt als een String gezien, als gewoon tekst dus, en niet als een Integer, een getal. Je moet VB dus laten weten dat tie de ingevulde waarde als een Integer moet zien, en dat doe je met het sleutelwoord CInt:

Code:
CInt(Naamvantextbox.Text)

Dus zo:

Code:
invoer = CInt(Aantal.Text) 'Ervan uitgaand dat Aantal de textbox is waar het om gaat, wat dat zeg je niet)

En wat meer is, de code die je hebt gepost, kan veel korter gemaakt worden. Hoe minder code, hoe beter, toch?
 
Kijk (o.a.) hier voor mogelijkheden om tekst om te zetten naar integer.

Waar het misloopt is vlgs. mij op het stuk:
invoer = Aantal.Text
omdat invoer als Integer is gedeclareerd, maar je het een Text-waarde geeft.

Probeer eens als vervanging
invoer = Convert.ToInt32(Aantal.Text)

Andere varianten die je kunt proberen (zie ook de link hierboven):
invoer = Val(Aantal.Text)
of
invoer = CInt(Aantal.Text)
of
invoer = Integer.Parse(Aantal.Text)

EDIT: Ik zie zojuist dat The Mighty Atom iets vergelijkbaar suggereerde als oorzaak van de melding en hoe het op te lossen.

Succes,

Tijs.
 
Laatst bewerkt:
Hallo allemaal,

Als eerste hartelijk dank voor de oplossing.
De oplossing is
invoer = Val(aantal.text)

Met vriendelijke groet
Twan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan