---
title: "Problem med funktion"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/83539-problem-med-funktion"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "phazer23"
published: "2003-08-05T21:11:13.000Z"
updated: "2003-08-06T00:35:17.000Z"
replies: 8
views: 316
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/asp/83539-problem-med-funktion"
---

# Problem med funktion

## #1 — phazer23, 2003-08-05T21:11Z

Hej.. Använder följande kod för att uppdatera en serietabell m.m men får problem när jag lägger in resultat över 9 tex 10-2 då blir det konstigt och stämmer inte alls.. 

Jag vet att det är mycket kod men om nån smart person kan se vart felet ligger skulle jag vara evigt tacksam.. ;)

```
Function f_checkResultat(intMatchID, intHresultat, intBresultat)
'****************************************************
'Denna funktion kollar om det resultat som laggts in
'i formuläret ska läggas in i databasen för första ggn
'eller om resultatet ska ändras, om så är fallet ska även tabellen 
'ändras
'****************************************************
'
'****************************************************
'## ~1 ##
If Len(intHresultat) <= 0 AND Len(intBresultat) <= 0 Then
f_checkResultat = "Du har inte lagt in några resultat"
Exit Function
End If 

'****************************************************
'## ~2 ##
strSQL = "SELECT LagA, LagB, Resultat1, Resultat2, Serie "&_
"FROM matchprogram WHERE Matchnr = "&intMatchID
'****************************************************
response.write strSQL
'****************************************************
'## ~3 ##
Set ObjConn = Server.CreateObject("ADODB.Connection")
'kommentera bort den som ni inte ska använda
'Access
ObjConn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=xxxxxxxxxxxxxxxxxxxxx.mdb"
'mySQL
Set ObjRS = ObjConn.execute(strSQL)
If ObjRS.EOF Then
f_CheckResultat = "matchen finns inte"
Exit function
Else
If Len(ObjRS("Resultat1")) > 0 Then
d_intHresultat = Cint(ObjRS("Resultat1"))
End If
If Len(ObjRS("Resultat2")) > 0 Then
d_intBresultat = Cint(ObjRS("Resultat2"))
End If 
strHemmalag = ObjRS("LagA")
strBortalag = ObjRS("LagB")
strSerie = ObjRS("Serie")
End If
'****************************************************
'## ~4 ##
If Len(d_intHresultat) <= 0 AND Len(d_intBresultat) <= 0 Then
'Uppdaterar matchprogramet
strUPD1 = "UPDATE matchprogram SET Resultat1 = "&intHresultat&", "&_
"Resultat2 = "&intBresultat&" "&_
"WHERE Matchnr = "&intMatchID

'Kollar vem som vann
If Cint(intHresultat) > Cint(intBresultat) Then
hp = "+ 2" : hv = "+ 1" : hf = "+ 0" : ho = "+ 0"
bp = "+ 0" : bv = "+ 0" : bf = "+ 1" : bo = "+ 0"
End If

If Cint(intHresultat) = Cint(intBresultat) Then
hp = "+ 1" : hv = "+ 0" : hf = "+ 0" : ho = "+ 1"
bp = "+ 1" : bv = "+ 0" : bf = "+ 0" : bo = "+ 1"
End If

If Cint(intHresultat) < Cint(intBresultat) Then
hp = "+ 0" : hv = "+ 0" : hf = "+ 1" : ho = "+ 0"
bp = "+ 2" : bv = "+ 1" : bf = "+ 0" : bo = "+ 0"
End If

'Uppdaterar Serien
'Uppdaterar hemmalagets stat.
strUPD2 = "UPDATE Serie Set Vinst = Vinst " & hv & ", "&_
"Forl = Forl " & hf & ", "&_
"Poang = Poang " & hp &", "&_
"Oav = Oav " & ho &", "&_
"Gjorda = Gjorda + "& intHresultat &", "&_
"Inslapp = Inslapp + "& intBresultat &", "&_
"Spelade = Spelade + 1"&_
"plusminus = plusminus + "& intHresultat &" + "& intBresultat &", "&_
" WHERE Lag = "&strHemmalag&" "&_
" AND Klass = "&strSerie&""

Response.write strUPD2

'Uppdaterar bortalagets stat.
strUPD3 = "UPDATE Serie Set Vinst = Vinst " & bv & ", "&_
"Forl = Forl " & bf & ", "&_
"Poang = Poang " & bp &", "&_
"Oav = Oav " & bo &", "&_
"Gjorda = Gjorda + "& intBresultat &", "&_
"Inslapp = Inslapp + "& intHresultat &", "&_
"Spelade = Spelade + 1"&_
"plusminus = plusminus + "& intBresultat &" + "& intHresultat &", "&_
" WHERE Lag = "&strBortalag&" "&_
" AND Klass = "&strSerie&""

ObjConn.execute(strUPD1),,128
ObjConn.execute(strUPD2),,128
ObjConn.execute(strUPD3),,128
ObjConn.close
Set ObjConn = Nothing
f_CheckResultat = "Du har nu lagt in ett resultat till match nr "&intMatchID
Exit Function
End If

'****************************************************
'## ~5 ##
If d_intHresultat = intHresultat AND d_intBresultat = intBresultat Then
f_checkResultat = "Du har inte ändrat några resultat"
Exit Function
End If
'****************************************************
'## ~6 ##
If d_intHresultat > d_intBresultat Then
strFirstWinner = "hemma"
End If

If d_intHresultat = d_intBresultat Then
strFirstWinner = "ingen"
End If

If d_intHresultat < d_intBresultat Then
strFirstWinner = "borta"
End If
'****************************************************
'## ~7 ## 
If intHresultat > intBresultat Then
strSecondWinner = "hemma"
End If

If intHresultat = intBresultat Then
strSecondWinner = "ingen"
End If

If intHresultat < intBresultat Then
strSecondWinner = "borta"
End If
'****************************************************
'## ~8 ##

If strFirstWinner = "hemma" AND strSecondWinner = "hemma" Then
intBolean = 0
End If

If strFirstWinner = "ingen" AND strSecondWinner = "ingen" Then
intBolean = 0
End If

If strFirstWinner = "borta" AND strSecondWinner = "borta" Then
intBolean = 0
End If

If strFirstWinner = "hemma" AND strSecondWinner = "borta" Then
intBolean = 1
hp = "-2" : hv = "-1" : hf = "+1" : ho = "+0"
bp = "+2" : bv = "+1" : bf = "-1" : bo = "+0"
End If

If strFirstWinner = "borta" AND strSecondWinner = "hemma" Then
intBolean = 2
hp = "+2" : hv = "+1" : hf = "-1" : ho = "+0"
bp = "-2" : bv = "-1" : bf = "+1" : bo = "+0" 
End If
If strFirstWinner = "ingen" AND strSecondWinner = "hemma" Then
intBolean = 3
hp = "+1" : hv = "+1" : hf = "+0" : ho = "-1"
bp = "-1" : bv = "+0" : bf = "+1" : bo = "-1"
End If
If strFirstWinner = "ingen" AND strSecondWinner = "borta" Then
intBolean = 4
hp = "-1" : hv = "+0" : hf = "+1" : ho = "-1"
bp = "+1" : bv = "+1" : bf = "+0" : bo = "-1"
End If

If strFirstWinner = "hemma" AND strSecondWinner = "ingen" Then
intBolean = 5
hp = "-1" : hv = "-1" : hf = "+0" : ho = "+1"
bp = "+1" : bv = "+0" : bf = "-1" : bo = "+1"
End If

If strFirstWinner = "borta" AND strSecondWinner = "ingen" Then
intBolean = 6
hp = "+1" : hv = "+0" : hf = "-1" : ho = "+1"
bp = "-1" : bv = "-1" : bf = "+0" : bo = "+1"
End If
'****************************************************
'## ~9 ##

If intBolean > 0 Then
'uppdaterar hemmalagets poäng
strUPD1 = "UPDATE Serie Set Vinst = Vinst " & hv & ", "&_
"Forl = Forl " & hf & ", "&_
"Poang = Poang " & hp &", "&_
"Oav = Oav " & ho &", "&_
"Gjorda = Gjorda - "& d_intHresultat &" + "& intHresultat &", "&_
"Inslapp = Inslapp - "& d_intBresultat &" + "& intBresultat &", "&_
"plusminus = plusminus - "& d_intHresultat &" + "& intHresultat &" + "& d_intBresultat &" - "& intBresultat &_
" WHERE Lag = "&strHemmalag&""&_
" AND Klass = "&strSerie&""
Response.Write strUPD1

'uppdaterar bortalagets poäng
strUPD2 = "UPDATE Serie Set Vinst = Vinst " & bv & ", "&_
"Forl = Forl " & bf & ", "&_

"Poang = Poang " & bp &", "&_
"Oav = Oav " & bo &", "&_
"Gjorda = Gjorda - "& d_intBresultat &" + "& intBresultat &", "&_
"Inslapp = Inslapp - "& d_intHresultat &" + "& intHresultat &", "&_
"plusminus = plusminus - "& d_intBresultat &" + "& intBresultat &" + "& d_intHresultat &" - "& intHresultat &_
" WHERE Lag = "&strBortalag&" "&_
" AND Klass = "&strSerie&""
Response.Write strUPD2
Else
'uppdaterar hemmalagets poäng
strUPD1 = "UPDATE Serie SET Gjorda = Gjorda - "& d_intHresultat &" + "& intHresultat &", "&_
"Inslapp = Inslapp - "& d_intBresultat &" + "& intBresultat &", "&_
"plusminus = plusminus - "& d_intHresultat &" + "& intHresultat &" + "& d_intBresultat &" - "& intBresultat &_
" WHERE Lag = "&strHemmalag&" "&_
" AND Klass = "&strSerie&""
Response.Write strUPD1
'uppdaterar bortalagets poäng
strUPD2 = "UPDATE Serie SET Gjorda = Gjorda - "& d_intBresultat &" + "& intBresultat &", "&_
"Inslapp = Inslapp - "& d_intHresultat &" + "& intHresultat &", "&_
"plusminus = plusminus - "& d_intBresultat &" + "& intBresultat &" + "& d_intHresultat &" - "& intHresultat &_
" WHERE Lag = "&strBortalag&" "&_
" AND Klass = "&strSerie&""
Response.Write strUPD2
End If
'Uppdaterar Matchprogrammet
strUPD3 = "UPDATE matchprogram SET Resultat1 = "&intHresultat&", "&_
"Resultat2 = "&intBresultat&" "&_
"WHERE Matchnr = "&intMatchID
Response.Write strUPD3
ObjConn.execute strUPD1 ,,128
ObjConn.execute strUPD2 ,,128
ObjConn.execute strUPD3 ,,128
ObjConn.close
Set ObjConn = Nothing
f_CheckResultat = "Resultatet har uppdaterats"
End Function
%>
```

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

## #2 — solbulle, 2003-08-05T21:17Z

Det var lite muket kod ja...

Var är det som det går snett, du förefaller ju göra en mängd olika dbinsättningar/uppdateringar.

Ser även att du skriver ut dina sqlfrågor, hur blir utskrifterna av dom? Ser du inte var felet blir då?

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

## #3 — phazer23, 2003-08-05T21:20Z

Kanske uttyrkte mig lite luddigt. När jag lägger in tex resultat 2-2 så funkarm allt perfekt och det uppdateras som det skall men så fort jag lägger in tex 10-2 som resultat så tror den att laget som har 10 förlorar och att dom som gjort 2 vann men målskillnaden stämmer.. 

Dom olika "uppdateringarna" används för att kolla om det är ett nytt resultat som läggs in eller om det är ett ändrat osv..

Se <http://web.blueriders.net/seriesystem/prov.asp> så förstår du kanske vad jag menar med att det blir konstigt..

Det är endast när man läggar in resultat som är över 9 som detta inträffar

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

## #4 — solbulle, 2003-08-05T22:23Z

Jo, jag förstår iofs ditt problem, men däremot är det svårt att se i koden vilken sqlsats det blir som genererar felet.

Hur ser dina sqlsatser ut när du skriver ut dom? (När du sänder in ett värde som blir fel.)

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

## #5 — phazer23, 2003-08-05T22:47Z

Sqlsatserna blir enligt nedan om ja lägger in tex ett resultat på 8-10

UPDATE Serie Set Vinst = Vinst +1, Forl = Forl +0, Poang = Poang +1, Oav = Oav -1, Gjorda = Gjorda - 2 + 8, Inslapp = Inslapp - 2 + 10, plusminus = plusminus - 2 + 8 + 2 - 10 WHERE Lag = 1 AND Klass = 1

UPDATE Serie Set Vinst = Vinst +0, Forl = Forl +1, Poang = Poang -1, Oav = Oav -1, Gjorda = Gjorda - 2 + 10, Inslapp = Inslapp - 2 + 8, plusminus = plusminus - 2 + 10 + 2 - 8 WHERE Lag = 2 AND Klass = 1UPDATE matchprogram SET Resultat1 = 8, Resultat2 = 10 WHERE Matchnr = 

men som jag ser på det så måste ju felet ligga nånstan att lägger jag in ett tal på över 9 så tolkas det som ental tex 10 som 1...

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

## #6 — solbulle, 2003-08-05T23:01Z

Jo precis, frågan är ju bara var det tolkas fel.

Vad är plusminus?

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

## #7 — phazer23, 2003-08-05T23:01Z

Målskillnad.... ;) skillnaden mellan gjorda och insläppta.. Men det blir rätt ;)

Det är precis som om den någonstans tolkar det fel vem som vinner.....

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

## #8 — phazer23, 2003-08-06T00:18Z

Hittade felet själv.... ;)

Felet låg i hur jag skickade inte resultatet i "fuktionen" 

```

Response.Write f_checkResultat(intMatchID, intHresultat, intBresultat)
```

Byttes ut mot 

```

Response.Write f_checkResultat(Cint(intMatchID),Cint(intHresultat), Cint(intBresultat))
```

så funkade det som det skulle ;)... Tänk vad man blir blind ibland.

Tack för att du försökte hjälpa mig endå Solbulle.....

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

## #9 — solbulle, 2003-08-06T00:35Z

Där ser man. Schysst att det löste sig. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/83539-problem-med-funktion
