---
title: "Visa poster om variabel är tom"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/12131-visa-poster-om-variabel-är-tom"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Addeladde"
published: "2001-10-16T15:28:00.000Z"
updated: "2001-10-16T20:50:00.000Z"
replies: 8
views: 199
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/12131-visa-poster-om-variabel-är-tom"
---

# Visa poster om variabel är tom

## #1 — Addeladde, 2001-10-16T15:28Z

OM man har ett sökformulär med ett par olika alternativ. Om man väljer att inte fylla i något i formulären vill jag att i SQL-frågan bortser från alternativet.

Exempel om jag på sökformuläret har två rutor Namn och ålder. Jag fyller bara i ålder. då vill jag att alla med den aldern ska visas.

Denna rad i sokfragan ska alltså inte vara med where namn = "& namn &"

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

## #2 — LarsG, 2001-10-16T15:42Z

```
sql = "select * from ogrish where 1 = 1 "
if  request.form("namn") <> "" then
namn = "'" & replace(namn,"'","''") & "'"
sql = sql & " and namn = " & namn
end if

if  request.form("alder") <> "" then
sql = sql & " and alder = " & request.form("alder")
end if
```

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

## #3 — Brimba, 2001-10-16T15:44Z

bygg sqlfrågan utifrån vad du får.

\<%
If request.form("age") = "" AND request.form("name") = "" Then
where = ""
else
where = "where"
End If

If request.form("age") = "" Then
 age = ""
else
 age = "age ="
End If
%\>
sedan så....

sql = "select \* from tbl " & where & age

osv..

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

## #4 — Addeladde, 2001-10-16T15:50Z

Nu blev det snurrigt så här ser min kod ut nu

```
dim kon, sprak, staus, hemvist, karaktar, alder
'Hämta värden
kon = cINT( Request( "kon" ) )
sprak = cINT( Request( "sprak" ) )
hemvist = cINT( Request( "hemvist" ) )
karaktar = cINT( Request( "karaktar" ) )
alder =cINT( Request( "alder" ) )

Set rosterRS = Server.CreateObject( "ADODB.Recordset" )
rosterRS.ActiveConnection = Con

sqlString = "SELECT rost_kod, rost_sprak, rost_hemvist, rost_kon, rost_alder, rost_karaktar, rost_fil, sprak_svenska, land_svenska " &_
"FROM roster, sprak, land " &_
"WHERE rost_status=1 " &_
"AND rost_hemvist = " & hemvist & " " &_
"AND rost_karaktar = " & karaktar & " " &_
"AND rost_alder = " & alder & " " &_
"AND rost_sprak = " & sprak & " " &_
"AND rost_kon = " & kon & " " &_
"AND land_id = rost_hemvist " &_
"AND sprak_id = rost_sprak " &_
" ORDER by rost_kod DESC" 
SET rosterRS = Con.Execute( sqlString )
```

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

## #5 — LarsG, 2001-10-16T16:15Z

```
sqlString = "SELECT rost_kod, rost_sprak, rost_hemvist, rost_kon, rost_alder, rost_karaktar, rost_fil, sprak_svenska, land_svenska " &_
"FROM roster, sprak, land " &_
"WHERE rost_status=1 " 
"AND rost_hemvist = " & hemvist & " " 

if karaktar <> "" then
   sqlstring = sqlstring & _
"AND rost_karaktar = " & karaktar & " " 
end if

if alder <> "" then
   sqlstring = sqlstring & _
"AND rost_alder = " & alder & " " 
end if

sqlstring = sqlstring & _
"AND land_id = rost_hemvist " &_
"AND sprak_id = rost_sprak " &_
"AND rost_sprak = " & sprak & " " &_
"AND rost_kon = " & kon & " " &_
" ORDER by rost_kod DESC" 

SET rosterRS = Con.Execute( sqlString
```

Du får väl anpassa lite beroende på vilka fält som är obligatoriska eller inte.

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

## #6 — Addeladde, 2001-10-16T16:25Z

Jag får inga poster uppradade.

```
sqlString = "SELECT rost_kod, rost_sprak, rost_hemvist, rost_kon, rost_alder, rost_karaktar, rost_fil, sprak_svenska, land_svenska " &_
"FROM roster, sprak, land " &_
"WHERE rost_status=1 " 

if karaktar <> "" then
sqlstring = sqlstring & _
"AND rost_karaktar = " & karaktar & " " 
end if

if hemvist <> "" then
sqlstring = sqlstring & _
"AND rost_hemvist = " & hemvist & " " 
end if

if sprak <> "" then
sqlstring = sqlstring & _
"AND rost_sprak = " & sprak & " " 
end if

if kon <> "" then
sqlstring = sqlstring & _
"AND rost_kon = " & kon & " " 
end if

if alder <> "" then
sqlstring = sqlstring & _
"AND rost_alder = " & alder & " " 
end if

sqlstring = sqlstring & _
"AND land_id = rost_hemvist " &_
"AND sprak_id = rost_sprak " &_
" ORDER by rost_kod DESC" 
SET rosterRS = Con.Execute( sqlString )
```

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

## #7 — LarsG, 2001-10-16T17:00Z

Du kan ju börja med att testa utan att fylla i några villkor alls och ta den sql-fråga som du får och testa den separat.

Sen så får du sätta fler villkor och kontrollera att sql-satsen ser riktig ut.

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

## #8 — Addeladde, 2001-10-16T17:09Z

Jag har prövat det.
Om jag väljer att bara ta med detta i koden.

```
sqlString = "SELECT rost_kod, rost_sprak, rost_hemvist, rost_kon, rost_alder, rost_karaktar, rost_fil, sprak_svenska, land_svenska " &_
"FROM roster, sprak, land " &_
"WHERE rost_status=1 " 

if kon <> "" then
sqlstring = sqlstring & _
"AND rost_kon = " & kon & " " 
end if

sqlstring = sqlstring & _
"AND land_id = rost_hemvist " &_
"AND sprak_id = rost_sprak " &_
" ORDER by rost_kod DESC" 
SET rosterRS = Con.Execute( sqlString )
```

Om kon = 1 så radar den upp två poster men om kon = "" så radar den inte upp några poster när den borde rada upp 4 st poster.

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

## #9 — Addeladde, 2001-10-16T20:50Z

:) Löste det! När man använder cINT tilldelas variabeln 0 om det är NULL.

Alltså ska det stå IF alder \<\> 0

så enkelt var det. Tack för all hjälp Lasse

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/12131-visa-poster-om-variabel-är-tom
