---
title: "Boolean"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/128878-boolean"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2005-05-25T23:05:11.000Z"
updated: "2005-05-27T22:44:49.000Z"
replies: 14
views: 520
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/128878-boolean"
---

# Boolean

## #1 — devotion, 2005-05-25T23:05Z

:e 
Hej!

Här följande kod som hämtar värde från en kryssruta. 
Checked value = 1

```
blnBreakfast = CBool(request.Form("checkBreakfast"))
```

Hur får jag in det i en accessdatabas? har provat lite olika men inte lyckats.

Datbasen är inställd på Ja/nej med formatet sant/falskt.

vad ska jag ha runt ett booleskt värde i sql-frågan?

sätter jag '" & blnBreakfast & "' så blir det typblandningsfel
sätter jag bara " & blnBreakfast & " så blir det för få parametrar...

Mvh
Henrik

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

## #2 — Guffa, 2005-05-26T00:16Z

Så här tar du emot värdet:

blnBreakfast = Request.Form("checkBreakfast") = "on"

För att lägga in ett boolskt värde i SQL-frågan så använder du 1 för sant och 0 för falskt.

\---------------
I want to hear you make decisions
Without your television

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

## #3 — @nders, 2005-05-26T03:08Z

Så kan man kanske göra om man inte har satt något värde på sin kryssruta, annars blir ju värdet aldrig *on*.

Det går alldeles utmärkt att skriva *true* resp. *false* direkt i SQL-frågan, så länge man inte anger några apostrofer runt.

mvh

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

## #4 — devotion, 2005-05-26T05:17Z

:) 
Hmmm...

Får det inte att fungera...

```
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/time/registerTime2.asp, line 47
```

Jag har kollat att variabeln har värde och det har den. True resp. False, beroende på läge kryssrutan har.

Sgl ser ut så här:

```
strSQL = "INSERT INTO tblOtherTime (spec, startDate, stopDate, comments, totaltime, user, taskNr, created, Dinner, Breakfast) " &_
		 "VALUES ('" & strSpecification & "', #" & dtStartDate & "#, #" & dtStopDate & "#, '" & strComments & "', " & strTotalTime & ", '" & Request.Cookies("sydostel")("User") & "', '" & strTaskNr & "', #" & Now() & "#, " & blnDinner & ", " & blnBreakfast & ")"
```

Querystringen ser ut så här:

```
blnBreakfast = CBool(request.Form("checkBreakfast"))
blnDinner = CBool(request.Form("checkDinner"))
```

Mvh
Henrik

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

## #5 — @nders, 2005-05-26T06:03Z

Hej!

Prova att skriva ut SQL-frågan för att se om det verkligen ser ut som du tror. 

Om man använder ett svenskt OS har boolska variabler förmågan att få värdena *Sant* resp. *Falskt* när de konverteras till en sträng. Kan det vara det som hänt?

Mvh

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

## #6 — Jesper T, 2005-05-26T06:33Z

Tror också att du kan skippa cbool och köra med 0 för false och 1 för true.

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

## #7 — @nders, 2005-05-26T06:49Z

Ja, man kan skippa Cbool, sätta värdet "1" på kryssrutan, och använda:

```
blnBreakfast = Len(request.Form("checkBreakfast"))
```

Då föreslår jag dock namnbyte på variablerna, men det är en petitess.

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

## #8 — devotion, 2005-05-26T07:15Z

:p 

Tack för svaren....

Ska hem och testa!!!

Mvh
Henrik

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

## #9 — J.N., 2005-05-26T07:46Z

HEJ!

Tänk också på att true/false är -1/0, observera minustecknet!
Jag har alltid använt siffror, vilket krånglar till det när man använder andra databaser, som använder 1/0 istället.

Det vore därför kanske enklare att använda true/false istället för siffror, som du gör. Ha det i åtanke.

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

## #10 — devotion, 2005-05-26T11:54Z

:e 

Hej !

så här ser response.write sql ut:

```
INSERT INTO tblOtherTime (spec, startDate, stopDate, comments, totaltime, user, taskNr, created, Dinner, Breakfast) VALUES ('Kontorsarbete', #2005-05-25 07:00:00#, #2005-05-25 16:00:00#, '', 8, 'Henrik', '', #2005-05-26 13:44:51#, Sant, Sant)
```

mvh
Henrik

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

## #11 — devotion, 2005-05-26T19:36Z

:h 
Hej!

Finns det verkligen inget sätt att sätta värdet True/false i en accessdatabas på en server som kör svenskt operativ??  Tycker det verkar konstigt...

Viss jag kan göra på ett annat sätt exempelvis som @nders skrev

```
blnBreakfast = Len(request.Form("checkBreakfast"))
```

...men jag tycker att det borde gå att göra så som jag tänkt liksom

Någon som vet???

Mvh
Henrik

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

## #12 — @nders, 2005-05-26T19:41Z

```
blnBreakfast = CBool(request.Form("checkBreakfast"))
if blnBreakfast then blnBreakfast = "True" else blnBreakfast = "False"
```

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

## #13 — devotion, 2005-05-26T20:49Z

:birp 

Funkar fin-fint!!!

Mvh

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

## #14 — Guffa, 2005-05-27T21:09Z

> **@nders skrev:**
>
> Så kan man kanske göra om man inte har satt något värde på sin kryssruta, annars blir ju värdet aldrig *on*.

Det är just om man inte satt något värde på kryssrutan som man får värdet "on". Det är det som är standardvärdet.

> **J.N. skrev:**
>
> Tänk också på att true/false är -1/0, observera minustecknet!
> Jag har alltid använt siffror, vilket krånglar till det när man använder andra databaser, som använder 1/0 istället.
> 
> Det vore därför kanske enklare att använda true/false istället för siffror, som du gör. Ha det i åtanke.

Det är just med tanke på migration till andra databaser som man bör använda siffror. Använd 1 för True och 0 för False så fungerar det exakt likadant i Access, MySQL och SQL Server.

> **@nders skrev:**
>
> blnBreakfast = CBool(request.Form("checkBreakfast"))

Värdet i Request.Form("checkBreakfast") är antingen "on" (ifall du inte specificerat ett annat värde i checkboxen) eller Empty. Värdet Empty konverteras till False, men värdet "on" går inte att konvertera till en boolean.

Använd koden som jag visade först istället:

```
blnBreakfast = Request.Form("checkBreakfast") = "on"
```

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

## #15 — @nders, 2005-05-27T22:44Z

> Det är just om man inte satt något värde på kryssrutan som man får värdet "on". Det är det som är standardvärdet.

Ja, vi menar samma sak. Jag kanske uttryckte mig klumpigt.

> Värdet i Request.Form("checkBreakfast") är antingen "on" (ifall du inte specificerat ett annat värde i checkboxen) eller Empty. Värdet Empty konverteras till False, men värdet "on" går inte att konvertera till en boolean.

Eftersom enligt ursprungsinlägget 1 var värdet för ikryssad checkbox fungerar "min" kod lika bra. =)

mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/128878-boolean
