---
title: "IF sat i sql-string"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/54889-if-sat-i-sql-string"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Addeladde"
published: "2002-10-02T14:52:28.000Z"
updated: "2002-10-02T17:33:55.000Z"
replies: 6
views: 219
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/54889-if-sat-i-sql-string"
---

# IF sat i sql-string

## #1 — Addeladde, 2002-10-02T14:52Z

Varför kan jag inte göra så här

```php
sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, " &_
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  "sida_datum_start, " &_
  "sida_datum_slut, " &_
END IF
  "sida_indexera, " &_
  "sida_nyckelord, " &_
  "sida_anteckningar, " &_
  "sida_visa ) VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
  		  publicering & ", " &_
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " &_
END IF
 		 indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
  		 visaSida  & "  )"

Con.Execute sqlString
```

Får felmeddelandet:

> Feltyp:
> Kompileringsfel i Microsoft VBScript (0x800A03EA)
> Syntaxfel
> /cm/admin/sidor/hantera_sida.asp, line 38
> IF IsDate(datumStart) AND IsDate(datumSlut) THEN

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

## #2 — SPinckney, 2002-10-02T15:03Z

SQL stödjer väl inte IF satser?

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

## #3 — LarsG, 2002-10-02T15:03Z

En sträng är en sträng.

```
function iif (condition,value,elsepart)
if condition then iif = value else iif = elsepart
end function

sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, " &_
IIF (IsDate(datumStart) AND IsDate(datumSlut), _ 
  "sida_datum_start, " &_
  "sida_datum_slut, " , "" ) &_
  "sida_indexera, " &_
  "sida_nyckelord, " &_
  "sida_anteckningar, " &_
  "sida_visa ) VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
            publicering & ", " &_
IIF(IsDate(datumStart) AND IsDate(datumSlut), _
  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " ,"") & _
          indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
           visaSida  & "  )"
```

Jag vet inte om det blir tydligare, tror nästan att det blir bättre att skriva om den som

```
sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, " 
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  sqlstring = sqlstring & "sida_datum_start, " &_
  "sida_datum_slut, " 
END IF
sqlstring = sqlstring & "...
```

Ot: Det finns if-satser i SQL.

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

## #4 — UlfT, 2002-10-02T15:04Z

> Varför kan jag inte göra så här

Därför att det inte är korrekt VB-kod. Gör istället så att du bygger upp din sträng i flera steg:

```
sqlString = "INSERT INTO sidor " &_

  "( sida_titel, " &_

  "sida_forfattare, " &_

  "sida_publicering, "

IF IsDate(datumStart) AND IsDate(datumSlut) THEN

  sqlString = sqlString & "sida_datum_start, " &_

  "sida_datum_slut, "

END IF
.
.
.
etc.
```

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

## #5 — Addeladde, 2002-10-02T15:34Z

Den här kodbiten tror jag att jag har fått klar:

```
  "sida_publicering, " 
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
sqlString = sqlString&"INSERT INTO sidor " &_  
  "sida_datum_start, " &_
  "sida_datum_slut,"
END IF
sqlString = sqlString&"INSERT INTO sidor " &_
```

Men hur gör jag med den här koden:

```
VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
            publicering & ", " &_
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " &_
END IF
          indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
           visaSida  & "  )"
```

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

## #6 — LarsG, 2002-10-02T15:53Z

```
sqlString = "INSERT INTO sidor " &_
  "( sida_titel, " &_
  "sida_forfattare, " &_
  "sida_publicering, "
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
sqlstring = sqlstring &  "sida_datum_start, " &_
  "sida_datum_slut, " 
END IF
sqlstring = sqlstring &  "sida_indexera, " &_
  "sida_nyckelord, " &_
  "sida_anteckningar, " &_
  "sida_visa ) VALUES ( " &_
  " '" & titel & "', " &_
  " '" & forfattare & "', " &_
            publicering & ", " 
IF IsDate(datumStart) AND IsDate(datumSlut) THEN
sqlstring = sqlstring &  " #" & datumStart & "#, " &_
  " #" & datumSlut & "#, " 
END IF
sqlstring = sqlstring &   indexera & ", " &_
  " '" & nyckelord & "', " &_
  " '" & anteckningar & "', " &_
           visaSida  & "  )"

Con.Execute sqlString
```

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

## #7 — Addeladde, 2002-10-02T17:33Z

Tackar

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/54889-if-sat-i-sql-string
