On Tue, 10 Feb 2004 15:24:33 +0100, "pepss" <olefriis@privat.dk>
wrote:
>det jeg så vil høre er om man ikke på en måde lave noget alá
>
>strSQL = "SELECT *" & _
> "FROM medlemmer Where" & _
>
>If Len(strmedlem)>0 Then
>" medlem LIKE '" & strmedlem & "'" & _
>end if
>
>If Len(strfoto)>0 Then
>" AND foto > " & strfoto & " " & _
>end if
>
>for at samle de 2 del af koden og så kun have de forspørersler med i sql
>kaldet der skal bruges
Nej ikke direkte - du får en (ASP/VBScript-)syntax-fejl [1]. Men du
kan:
strSQL = "SELECT *" & _
" FROM medlemmer WHERE 1 = 1"
If Len(strmedlem) > 0 Then
strSQL = strSQL & " AND medlem LIKE '" & strmedlem & "'"
End if
If Len(strfoto) > 0 Then
strSQL = strSQL & " AND foto > " & strfoto
End if
osv.
Du er nødt til at bruge 'WHERE 1 = 1' (eller noget lignende) til at
starte med,da du jo ikke kan vide, om detførste felt er valgt.
Om så dette egentlig er specielt meget smartere, end det du gjorde
først? - Tjah ...
Formentlig har du ovenikøbet noget kode forud, hvor du danner
variablerne strMedlem, strFoto m.v. Måske du kunne bygge SQL-stumperne
op her, men ellers må man jo bare sige, at hvis der er mange
betingelser, så får du også mange stumper, der skal samles, og sådan
er det bare
I hvert fald skal man ikke begynde at gå på kompromis med
input-validering og overskuelighed i kodningen bare for at spare et
par linier.
[1]
Du får en (ASP/VBScript-)syntax-fejl, fordi
1) du "forlænger" en linie:
strSql = "blabla" & _
uden at der kommer noget direkte bagefter,
og fordi
2) du ikke har et udsagn inde i din If-sætning:
If blabla Then
" en streng, men ikke et udsagn ..."
End If
Håber det giver mening.
Good luck!
--
Jørn Andersen,
Brønshøj