---
title: "Typblandningsfel i villkorsuttryck."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/91373-typblandningsfel-i-villkorsuttryck"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "josuason"
published: "2003-11-26T21:32:44.000Z"
updated: "2003-11-27T12:46:51.000Z"
replies: 16
views: 460
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/91373-typblandningsfel-i-villkorsuttryck"
---

# Typblandningsfel i villkorsuttryck.

## #1 — josuason, 2003-11-26T21:32Z

Har sökt efter andra trådar men inte hittat samma fel.

Detta händer när jag ändrar på information från databasen på adminsidan och updaterar. Det konstiga är att detta händer bara på vissa id inte alla data som ska ändras på.

Feltyp:
Microsoft JET Database Engine (0x80040E07)
Typblandningsfel i villkorsuttryck.

Är det någon som känner igen detta.

Ziggy

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

## #2 — LarsG, 2003-11-26T21:35Z

Visa den sqlkod som ger upphov till felet. Helst före och efter det att du har substituerat in värden.

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

## #3 — josuason, 2003-11-26T21:39Z

Från utför sidan

	\<%
	id	= request.form("id")
	alder	= request.form("alder")
	alder2	= request.form("alder2")
	dag	= request.form("dag")
	tider	= request.form("tider")
	larare	= request.form("larare")

	response.write "Följande information skickas till databasen: "
	response.write tider

	alder	= "'" & alder & "'"
	alder2	= "'" & alder2 & "'"
	dag	= "'" & dag & "'"
	tider	= "'" & tider & "'"
	larare	= "'" & larare & "'"

	sql = "update kurstider set"
	sql = sql & " alder="	& alder & ", "
	sql = sql & " alder2="& alder2 & ", "
	sql = sql & " dag="	& dag & ", "
	sql = sql & " tider="	& tider & ", "
	sql = sql & " larare="& larare 
	sql = sql & " where id=" & id

	conn.execute(sql)

%\>

Det konstiga är att vissa kurser går igenom men andra inte...

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

## #4 — Josef, 2003-11-26T21:50Z

Enligt felmeddelandet borde det ju vara så att du försöker skicka in fel typ av data i databasen. 

PS! Använd gärna \[kod\]-taggarna när du postar kod.

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

## #5 — josuason, 2003-11-26T21:57Z

Jag kom på att det händer bara när ett av fälten lämnas tomt vid updatering.  Hur kan man undvika det?..

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

## #6 — Web-Tor, 2003-11-26T22:13Z

Du använder Access eller?
Då kan du gå in i designläge och ändra fältet "Obligatorisk" till "Nej" och "Tillåt nolllängd" till "Ja".

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

## #7 — josuason, 2003-11-26T22:20Z

Jag kollade det Web-Tor men värdet är av Datatypen Tal och jag har valt Nej i fältet obligatorisk. Men den har inte "Tillåt nolllängd"
... Vad ska jag göra då??

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

## #8 — Engine^, 2003-11-26T23:10Z

Tillåt nollängd: Ja (eller fungerade inte det :q)

Eller så kan du ju testa om värdet finns, när du skapar sql-frågan.

```
sql = "UPDATE kurstider SET "
If alder <> "" Then sql = sql & "alder = " & alder & ", "
If alder2 <> "" Then sql = sql & "alder2 = " & alder2 & ", "
If dag <> "" Then sql = sql & "dag = " & dag & ", "
If tider <> "" Then sql = sql & "tider = " & tider & ", "
If larare <> "" Then sql = sql & "larare = " & larare
sql = sql & " WHERE id = " & id

[blue]'Kontroll så att inte alla värden var tomma...[/blue]
If InStr(sql, "SET WHERE") = 0 Then Conn.Execute sql, , 128
```

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

## #9 — josuason, 2003-11-27T00:35Z

Allt fungerar perfect om alla fält får ett värde men jag vill att det ska vara OK att inte fylla i vissa fält. Det är då den buggar när fältet "alder" lämnas tomt...

Sorry engine men jag får ett annat syntax fel när jag använder din kod.

Ziggy

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

## #10 — Engine^, 2003-11-27T07:27Z

Eftersom jag inte är synsk så frågar jag vad *ett annat syntax fel* kan vara för något?

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

## #11 — cyprys, 2003-11-27T07:45Z

skriv ut sql-strängen istället så får vi se.
Rent sporadiskt så blir det i alla fall fel när lärare \<\> "" efter som det då kommer se ut typ 
...tider = "tider", WHERE...

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

## #12 — Engine^, 2003-11-27T07:56Z

> **cyprys skrev:**
>
> skriv ut sql-strängen istället så får vi se.
> Rent sporadiskt så blir det i alla fall fel när lärare \<\> "" efter som det då kommer se ut typ 
> ...tider = "tider", WHERE...

Jo, det kan man ju faktiskt passa sig för...

```
sql = "UPDATE kurstider SET "
If alder <> "" Then sql = sql & "alder = " & alder & ", "
If alder2 <> "" Then sql = sql & "alder2 = " & alder2 & ", "
If dag <> "" Then sql = sql & "dag = " & dag & ", "
If tider <> "" Then sql = sql & "tider = " & tider & ", "
If larare <> "" Then
  sql = sql & "larare = " & larare
Else
  sql = Left(sql, Len(sql) - 2)
End If
sql = sql & " WHERE id = " & id

[blue]'Kontroll så att inte alla värden var tomma...[/blue]
If InStr(sql, "SET WHERE") = 0 Then Conn.Execute sql, , 128
```

Men som sagt... posta gärna fel och tillbörlig kod.

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

## #13 — josuason, 2003-11-27T11:43Z

Fel medelandet om jag lämnar fältet "alder" tomt och jag vill att det ska gå bra att göra det.

Feltyp:
Microsoft JET Database Engine (0x80040E07)
Typblandningsfel i villkorsuttryck.
/gds/admin/edit_kurstid_utfor.asp, line 45

Sida:
POST 74 bytes to /gds/admin/edit_kurstid_utfor.asp

POST Data:
id=41&alder=&alder2=Salsa+forts+2&dag=Tors&tider=20%3A45-22%3A00&larare=OL 

```
<%
	id	= request.form("id")
	alder	= request.form("alder")
	alder2	= request.form("alder2")
	dag	= request.form("dag")
	tider	= request.form("tider")
	larare	= request.form("larare")

	response.write "Följande information skickas till databasen: "
	response.write tider

	alder	= "'" & alder & "'"
	alder2	= "'" & alder2 & "'"
	dag	= "'" & dag & "'"
	tider	= "'" & tider & "'"
	larare	= "'" & larare & "'"

		sql = "UPDATE kurstider SET "
		If alder <> "" Then sql = sql & "alder = " & alder & ", "
		If alder2 <> "" Then sql = sql & "alder2 = " & alder2 & ", "
		If dag <> "" Then sql = sql & "dag = " & dag & ", "
		If tider <> "" Then sql = sql & "tider = " & tider & ", "
		If larare <> "" Then
  		sql = sql & "larare = " & larare
		Else
  		sql = Left(sql, Len(sql) - 2)
		End If
		sql = sql & " WHERE id = " & id

		'Kontroll så att inte alla värden var tomma...
		If InStr(sql, "SET WHERE") = 0 Then Conn.Execute sql, , 128

%>
```

 

Line 45 = If InStr(sql, "SET WHERE") = 0 Then Conn.Execute sql, , 128

Ziggy

Om jag fyller i alla fält så funkar det perfekt...

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

## #14 — @nders, 2003-11-27T11:45Z

Om alder är av taltyp ska du inte ha apostrofer runt värdet.

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

## #15 — josuason, 2003-11-27T12:23Z

Hur? Vart? Jag provade på några ställen men.....

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

## #16 — @nders, 2003-11-27T12:24Z

Här sätter du ju apostrofer runt alla värden:

```
	alder	= "'" & alder & "'"
	alder2	= "'" & alder2 & "'"
	dag	= "'" & dag & "'"
	tider	= "'" & tider & "'"
	larare	= "'" & larare & "'"
```

Du ska ju inte ha apostrofer runt värden som ska in i talfält.

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

## #17 — Engine^, 2003-11-27T12:46Z

Du kan se det själv på dom data du vill skicka in...

> **josuason skrev:**
>
> id=41&alder=&alder2=Salsa+forts+2&dag=Tors&tider=20%3A45-22%3A00&larare=OL

id är numeriskt - inga apostrofer.
alder och alder2 verkar helt skumma enligt mig. Vad är *Salsa+forts+2* för typ av information? Apostrofer behöver du där ivarjefall.
dag är text, alltså ska du ha apostrofer där. Samma för tider och larare.

```
<%
id = request.form("id")
alder = "'" & Replace(Request.Form("alder"), "'", "''") & "'"
alder2 = "'" & Replace(Request.Form("alder2"), "'", "''") & "'"
dag = "'" & Replace(Request.Form("dag"), "'", "''") & "'"
tider = "'" & Replace(Request.Form("tider"), "'", "''") & "'"
larare = "'" & Replace(Request.Form("larare"), "'", "''") & "'"

Response.Write "Följande information skickas till databasen: "
Response.Write tider

sql = "UPDATE kurstider SET "
If alder <> "" Then sql = sql & "alder = " & alder & ", "
If alder2 <> "" Then sql = sql & "alder2 = " & alder2 & ", "
If dag <> "" Then sql = sql & "dag = " & dag & ", "
If tider <> "" Then sql = sql & "tider = " & tider & ", "
If larare <> "" Then
  sql = sql & "larare = " & larare
Else
  sql = Left(sql, Len(sql) - 2)
End If
sql = sql & " WHERE id = " & id

[blue]'Debugläge... skriv ut SQL-frågan om något går snett
'Response.Write sql[/blue]
Conn.Execute sql, lngRA, 128

If lngRA = 0 Then
  Response.Write "Uppdateringen misslyckades."
Else
  Response.Write "Informationen är lagrad."
End If
%>
```

Skulle detta ge något fel så posta SQL-frågan som skapas.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/91373-typblandningsfel-i-villkorsuttryck
