---
title: "fel i kod"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/57185-fel-i-kod"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "tarfala"
published: "2002-10-26T18:50:17.000Z"
updated: "2002-10-28T14:04:33.000Z"
replies: 7
views: 277
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/57185-fel-i-kod"
---

# fel i kod

## #1 — tarfala, 2002-10-26T18:50Z

vad är fel i följande kod(fungerar inte att summera variablerna,de 
hamnar bara efter varann i summa textrutan)???

Option Explicit
Dim barn7 As Integer
Dim barn12 As Integer
Dim ungdom As Integer
Dim vuxen As Integer
Dim summa As Integer

Private Sub cmdbarn12_Click()
barn12 = barn12 + 1
txtbarn12 = barn12 \* 30
End Sub

Private Sub cmdbarn7_Click()
barn7 = barn7 + 1
txtbarn7 = barn7 \* 0
End Sub

Private Sub cmdsumma_Click()
txtsumma = txtvuxen + txtungdom + txtbarn12 + txtbarn7
End Sub

Private Sub cmdungdom_Click()
ungdom = ungdom + 1
txtungdom = ungdom \* 50
End Sub

Private Sub cmdvuxen_Click()
vuxen = vuxen + 1
txtvuxen = vuxen \* 80
End Sub

Permalänk: https://www.webforum.nu/p/57185

## #2 — @nders, 2002-10-26T18:59Z

Om du hämtar värden från en textruta så behandlas de som strängar. Gör en typkonvertering.

```
Private Sub cmdsumma_Click() 
txtsumma = CLng(txtvuxen) + CLng(txtungdom) + CLng(txtbarn12) + CLng(txtbarn7) 
End Sub
```

Jag ser inte riktigt var de värdena kommer ifrån heller, men det kanske inte spelar någon roll.

Mvh,

Permalänk: https://www.webforum.nu/p/835632

## #3 — tarfala, 2002-10-27T08:20Z

tack, fungerar bra om alla variabler får ett värde ,men tex om bara två av variablerna har ett värde, kan man tilldela alla ett startvärde för att undvika fel???

Permalänk: https://www.webforum.nu/p/835794

## #4 — @nders, 2002-10-27T08:43Z

Ja, kanske om man använder Iif().

```
Private Sub cmdsumma_Click() 
txtsumma = IIf(IsNumeric(txtvuxen), CLng(txtvuxen), 0) + IIf(IsNumeric(txtungdom), CLng(txtungdom), 0) + IIf(IsNumeric(txtbarn12), CLng(txtbarn12), 0) + IIf(IsNumeric(txtbarn7), CLng(txtbarn7), 0)
End Sub
```

Mvh,

Permalänk: https://www.webforum.nu/p/835796

## #5 — tarfala, 2002-10-27T09:54Z

får samma fel i alla fall "runtime error '13' type mismatch"???

Permalänk: https://www.webforum.nu/p/835821

## #6 — Marcus E, 2002-10-27T13:41Z

> **tarfala skrev:**
>
> får samma fel i alla fall "runtime error '13' type mismatch"???

Du får "Type mismatch" eftersom IIf är en vanlig funktion och när man anropar en funktion körs alla argument i funktionen.

Ett sätt är att göra en konverteringsfunktion som kan se ut så här:

```
Private Function StrToLng(str As String) As Long
    If (IsNumeric(str)) Then
        StrToLng = CLng(str)
    Else
        StrToLng = 0
    End If
End Function
```

Den används på följande sätt:

```
txtsumma = StrToLng(txtvuxen) + StrToLng(txtungdom) + StrToLng(txtbarn12) + StrToLng(txtbarn7)
```

Permalänk: https://www.webforum.nu/p/835907

## #7 — @nders, 2002-10-27T21:02Z

Ja, just jäklar!

VB är lite dumt på det sättet ibland. Jag ber om ursäkt om jag ledde in på fel spår. ;)

Mvh,

Permalänk: https://www.webforum.nu/p/836167

## #8 — tarfala, 2002-10-28T14:04Z

vilka klippor det finns på WF

:) många :bire  :bire till @nders och marcus E  som tack för hjälpen

Permalänk: https://www.webforum.nu/p/836533

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/57185-fel-i-kod
