---
title: "IF Request i en SELECT?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13829-if-request-i-en-select"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jacek"
published: "2002-01-17T10:48:00.000Z"
updated: "2002-01-17T14:30:00.000Z"
replies: 12
views: 166
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/13829-if-request-i-en-select"
---

# IF Request i en SELECT?

## #1 — Jacek, 2002-01-17T10:48Z

Går dett att fixa i en SELECT att om värdet på request.form("KundId") är lika med "alla" skall snutten i select Kund = '" & KundId & "' förvinna..
Typ som att slänga in en if-sats..

Nån som hajja?

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

## #2 — LarsG, 2002-01-17T10:54Z

Jo, det går. är det inte enklare att lägga den if-satsen i ditt skript?

```
if request.form("kundid") = "alla" then
   sql = "select ..."
else
   sql = "select ..."
end if
```

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

## #3 — Jacek, 2002-01-17T11:09Z

Jo men jag har 3 val som kan vara antingen alla eller ett visst värde.

Användare
Kund
Projekt

Och då blir det ju ett antal, så det var därför jag undra om det kanske finns en anna utväg?

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

## #4 — LarsG, 2002-01-17T12:00Z

En anledning till att jag inte skrev någon SQL är att syntaxen beror på vilken databashanterare man använder, tyvärr. Det finns åtminstone 3 olika varianter som jag känner till. 
Vilken dbms använder du?

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

## #5 — Jacek, 2002-01-17T12:04Z

Kör oldschool -\> microsoft access 97 :)

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

## #6 — Jacek, 2002-01-17T12:37Z

Testade detta med det funka inte!

```
<% If Anvandare = "alla" AND Kunder = "alla" Then %>
1
<% ElseIf Anvandare = "alla" AND NOT Kunder = "alla" AND Projekt = "alla" Then %>
2
<% ElseIf Anvandare = "alla" AND NOT Kunder = "alla" AND NOT Projekt = "alla" Then %>
3
<% ElseIf NOT Anvandare = "alla" AND Kunder = "alla" Then %>
4
<% ElseIf NOT Anvandare = "alla" AND NOT Kunder = "alla" AND Projekt = "alla" Then %>
5
<% ElseIf NOT Anvandare = "alla" AND NOT Kunder = "alla" AND NOT Projekt = "alla" Then %>
6
<% End IF %>
```

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

## #7 — Jacek, 2002-01-17T12:42Z

ähh ett litet skit fel där men fixa det så nu funkar det! =) \*klant\*

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

## #8 — Jacek, 2002-01-17T13:03Z

Nu när jag gör som du menat lars så får jag ingen felmeddelande men sidan blir lixom som försvunnen..
Ända gången det fungerar är när inget av de 3 fälten visar alla (den sista if-satsen).

```
If Anvandare = "alla" AND Kunder = "alla" Then

	SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "'"
	Set RsSumma = Conn.Execute(SQL)

ElseIf Anvandare = "alla" AND NOT Kunder = "alla" AND Projekt = "alla" Then

	SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarKundId = '" & Kunder & "' AND TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "'"
	Set RsSumma = Conn.Execute(SQL)

ElseIf Anvandare = "alla" AND NOT Kunder = "alla" AND NOT Projekt = "alla" Then

	SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarKundId = '" & Kunder & "' AND TimmarProjektId = '" & Projekt & "' AND TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "'"
	Set RsSumma = Conn.Execute(SQL)

ElseIf NOT Anvandare = "alla" AND Kunder = "alla" Then

	SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarUserId = '" & Anvandare & "' AND TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "'"
	Set RsSumma = Conn.Execute(SQL)

ElseIf NOT Anvandare = "alla" AND NOT Kunder = "alla" AND Projekt = "alla" Then

	SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarUserId = '" & Anvandare & "' AND TimmarKundId = '" & Kunder & "' AND TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "'"
	Set RsSumma = Conn.Execute(SQL)

ElseIf NOT Anvandare = "alla" AND NOT Kunder = "alla" AND NOT Projekt = "alla" Then

	SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarUserId = '" & Anvandare & "' AND TimmarKundId = '" & Kunder & "' AND TimmarProjektId = '" & Projekt & "' AND TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "'"
	Set RsSumma = Conn.Execute(SQL)

End IF
```

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

## #9 — Andreas L, 2002-01-17T13:51Z

Äh... 

Jag kanske missförstår dig, men är det inte så att det kan vara på endast TVÅ sätt?

Antingen så är request.form("KundId") = "alla"

eller så är det INTE lika med "alla" ?

Gör precis som LarsG säger:

```
If request.form("KundId") ="alla" then
'valet "alla" är marketat
stm = "SELECT..."
else
'ett kundid skickas med och skall användas för filtrering
stm = "SELECT..." 
End if
```

Tänkte på en annan sak. Om du har flera saker som kan ha värdet "alla" eller en specifik siffra så kan du bygga upp din sqlsyntax dynamiskt. Ungefär såhär:

```

stm = "SELECT... "
IF request.form("KundId") <> "alla" then stm = stm & " AND kundid = "&request.form("KundId") 

IF request.form("användare") <> "alla" then stm = stm & " AND användarid = "&request.form("användare")
'och så vidare. Tänk på att det kanske blir 
'radbrytningar när du läser det här i forumet
```

Skriv alltid ut din sql-sträng och kolla hur den ser ut innan du kör den i databasen

...eller "hajja" jag inte? ;) 

\[Redigerat av Andreas L den 17 jan 2002\]

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

## #10 — LarsG, 2002-01-17T14:02Z

Om du har flera olika villkor så 

```

SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "' "

If Anvandare <> "alla" then
SQL = sql & "and TimmarUserid = '" & anvandare & "' " 
end if

If Kunder <> "alla" Then
SQL = sql & " and TimmarKundId = '" & Kunder & "'"  
end if

If Projekt <> "alla" then
SQL = sql & " and TimmarProjektId = '" & Projekt & "' "
end if
Set RsSumma = Conn.Execute(SQL)
```

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

## #11 — Andreas L, 2002-01-17T14:08Z

SLÖLASSE!!! ;) \*hehe\*

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

## #12 — Jacek, 2002-01-17T14:27Z

Hmm det funka ändå inte.. något skumt är det slänger upp hela koden så kan ni kolla.

```
<%

Anvandare = Request.Form("Anvandare")
Kunder = Request.Form("Kunder")
Projekt = Request.Form("Projekt")
DatumFran = Request.Form("DatumFran")
DatumTill = Request.Form("DatumTill")

' ############# DATABAS KOPPLING #####################

 set conn=server.createobject("adodb.connection")
 path="DBQ=" & server.mappath("../../db/p6intranet.mdb")
 conn.open "driver={microsoft access driver (*.mdb)}; " & path,"name","name" 

' ############# ANVÄNDARE #####################

	SQL = "SELECT * FROM User Where UserId =" & Request("Anvandare")
	SQL = SQL & " Order by UserId"
	Set RsUser = Conn.Execute(SQL)

' ############# KUND #####################

	SQL = "SELECT * FROM Kund Where KundId =" & Request("Kunder")
	SQL = SQL & " Order by KundId"
	Set RsKund = Conn.Execute(SQL)

' ############# Projekt #####################

	SQL = "SELECT * FROM Projekt Where ProjektId =" & Request("Projekt")
	SQL = SQL & " Order by ProjektId"
	Set RsProjekt = Conn.Execute(SQL)

' ############# Timmar #####################

	SQL = "Select sum(TimmarAntal) as Summa FROM Timmar Where TimmarDatum BETWEEN '" & DatumFran & "' AND '" & DatumTill & "' "

	If Anvandare <> "alla" then
	SQL = sql & "and TimmarUserid = '" & Anvandare & "' " 
	end if

	If Projekt <> "alla" then
	SQL = sql & " and TimmarProjektId = '" & Projekt & "' "
	end if

	If Kunder <> "alla" Then
	SQL = sql & " and TimmarKundId = '" & Kunder & "'" 
	end if

	Set RsSumma = Conn.Execute(SQL)

%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../style.css" type="text/css">
</head>

<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
  <tr>
    <td align="center" valign="middle">
      <table width="400" border="0" cellspacing="0" cellpadding="5">
        <tr> 
          <td width="71">Namn</td>
          <td><b><%= RsUser("UserNamn")%>&nbsp;<%= RsUser("UserEfternamn")%></b></td>
        </tr>
        <tr> 
          <td width="71">Kund</td>
          <td><b><%= RsKund("KundNamn")%></b></td>
        </tr>
        <tr> 
          <td width="71">Projekt</td>
          <td><b><%= RsProjekt("ProjektNamn")%></b></td>
        </tr>
        <tr> 
          <td width="71">Datum</td>
          <td><b><%= DatumFran %> - <%= DatumTill %></b></td>
        </tr>
        <tr> 
          <td width="71">&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td width="71">Timmar</td>
          <td><b>
		<% If isnull(RsSumma("Summa")) Then %>
		0,0
		<% else %>
		<%= FormatNumber(RsSumma("Summa"),1)%>
		<% End If %> Timmar</b></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</body>
</html>
```

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

## #13 — Jacek, 2002-01-17T14:30Z

Löste problemet..
Det ni sa var rätt, men det var en massa massa små fel av mig..!

Tack

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/13829-if-request-i-en-select
