webForumDet fria alternativet

SQL fråga ?

4 svar · 169 visningar · startad av Pellefant

PellefantMedlem sedan maj 20022 614 inlägg
#1

Hejsan! :)

Har denna, jag önskar att det skulle fungera även om det inte finns något värde på subcatid och/eller inte heller på name.

På catid och city finns det alltid ett värde.

SQL = "SELECT * FROM Brunswick " _ 
     & " WHERE catid = " & catid _ 
     & " AND subcatid = " & subcatid _ 
     & " AND city = '" & city & "' " _ 
     & " AND name LIKE '%" & name & "%' "
LarsGMedlem sedan dec. 200012 465 inlägg
#2
SQL = "SELECT * FROM Brunswick " _ 
     & " WHERE catid = " & catid _ 
     & " AND (subcatid is null or subcatid = " & subcatid _ 
     & " ) AND city = '" & city & "' " _ 
     & " AND ( name LIKE '%" & name & "%'  or name is null)"
PellefantMedlem sedan maj 20022 614 inlägg
#3

Hej hopp!

Testar med ditt förslag nu, men den fallerar ibland.

Om bara catid och city finns:

SELECT * FROM Brunswick WHERE catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Brunswick' AND ( name LIKE '%%' or name is null)

Microsoft JET Database Engine error '80040e14'

Extra ) in query expression 'catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Brunswick' AND ( name LIKE '%%' or name is null)'.

Annat exempel:

SELECT * FROM Brunswick WHERE catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Sea Island' AND ( name LIKE '%%' or name is null)

Microsoft JET Database Engine error '80040e14'

Extra ) in query expression 'catid = 5 AND (subcatid is null or subcatid = ) AND city = 'Sea Island' AND ( name LIKE '%%' or name is null)'.

Här saknades bara name, och det gick bra:

SELECT * FROM Brunswick WHERE catid = 13 AND (subcatid is null or subcatid = 12 ) AND city = 'Brun' AND ( name LIKE '%%' or name is null)

Provade att vända på en av parenteserna, som kommit på fel håll(?), men det hjälpte inte.

Funkar bra även när alla fyra är valda.

LarsGMedlem sedan dec. 200012 465 inlägg
#4

Jaså, jag trodde att du menade att det inte fanns några värden i databasen... Då är det mer fråga om ASP.

SQL = "SELECT * FROM Brunswick " _ 
     & " WHERE catid = " & catid _ 
     & " AND city = '" & city & "'"
if subcatid <> "" then
   SQL = SQL & " AND subcatid = " & subcatid 
end if
if name <> "" then
   SQL = SQL & " AND name like '%" & name & "%'"
end if
PellefantMedlem sedan maj 20022 614 inlägg
#5

Jaså, hur kunde du få för dig något sådant? :) (skojar)

Nu fungerar det toppen, tack så mycket för hjälpen.

*Tack*

125 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
123 ms — hämta tråd, inlägg och bilagor (db)