|
| Problemer med variabler Fra : Bjørn Jakobsen |
Dato : 05-03-02 21:34 |
|
Hei
Jeg har en database med diverse opplysninger over våre medlemmer. I enkelte
poster er f.eks Adresse1, Adresse2 og/eller Padresse tomme. Det som skjer er
at jeg
"mister" disse postene ved utlisting/spørring til databasen. Brukere skal
via søkeskjema ha mulighet til å søke i de forskjellige kolonnene, og dette
fungerer bortsett fra de postene som faller utenfor. Noen som kan hjelpe?
Bjørn
<%
Dim Recordset1__varNavn
Recordset1__varNavn = "%"
if (Request.QueryString("txtNavn") <> "") then Recordset1__varNavn =
Request.QueryString("txtNavn")
%>
<%
Dim Recordset1__varAdresse
Recordset1__varAdresse = "%"
if (Request.QueryString("txtAdresse2") <> "") then Recordset1__varAdresse
= Request.QueryString("txtAdresse2")
%>
osv.
Recordset1.Source = "SELECT ID, Dato, Aar, Navn, Adresse1, Adresse2,
Padresse, Telefon, Mobil, Faks FROM Table WHERE Dato LIKE '" +
Replace(Recordset1__varDato, "'", "''") + "' AND Aar LIKE '" +
Replace(Recordset1__varAar, "'", "''") + "' AND Navn LIKE '" +
Replace(Recordset1__varNavn, "'", "''") + "' AND Adresse2 LIKE '" +
Replace(Recordset1__varAdresse, "'", "''") + "' AND Padresse LIKE '" +
Replace(Recordset1__varPadresse, "'", "''") + "' AND Telefon LIKE '" +
Replace(Recordset1__varTelefon, "'", "''") + "' AND Mobil LIKE '" +
Replace(Recordset1__varMobil, "'", "''") + "' AND Faks LIKE '" +
Replace(Recordset1__varFaks, "'", "''") + "' ORDER BY Navn"
| |
Jørn Andersen (06-03-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 06-03-02 01:32 |
|
On Tue, 5 Mar 2002 21:33:55 +0100, "Bjørn Jakobsen"
<bjornja@vestfoldnett.no> wrote:
>Jeg har en database med diverse opplysninger over våre medlemmer. I enkelte
>poster er f.eks Adresse1, Adresse2 og/eller Padresse tomme. Det som skjer er
>at jeg
>"mister" disse postene ved utlisting/spørring til databasen. Brukere skal
>via søkeskjema ha mulighet til å søke i de forskjellige kolonnene, og dette
>fungerer bortsett fra de postene som faller utenfor. Noen som kan hjelpe?
>
>Bjørn
>
><%
>Dim Recordset1__varNavn
>Recordset1__varNavn = "%"
>if (Request.QueryString("txtNavn") <> "") then Recordset1__varNavn =
>Request.QueryString("txtNavn")
Hvis et databasefelt er tomt, så har den værdien Null (som ikke er det
samme som Empty eller 0 eller ""), så du er nødt til at checke på den
også:
Recordset1__varNavn = "%"
txtNavn = Request.QueryString("txtNavn")
If Trim(txtNavn) <> "" Or Trim(txtNavn) <> Null Then
Recordset1__varNavn = Request.QueryString("txtNavn")
(Hvis du checker for en tom streng, så brug altid Trim også.)
Good luck,
Jørn
--
Jørn Andersen,
Brønshøj
| |
Bjørn Jakobsen (06-03-2002)
| Kommentar Fra : Bjørn Jakobsen |
Dato : 06-03-02 21:57 |
|
Takk for tipset. Har også vært inne på tanken med IS NULL, men fikk beskjed
om "Null data". Uansett, jeg prøver.
Takk for hjelpen!
Bjørn
"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:dgoa8u858pup49942d97v9ll8367pf7sfn@4ax.com...
> On Tue, 5 Mar 2002 21:33:55 +0100, "Bjørn Jakobsen"
> <bjornja@vestfoldnett.no> wrote:
>
> >Jeg har en database med diverse opplysninger over våre medlemmer. I
enkelte
> >poster er f.eks Adresse1, Adresse2 og/eller Padresse tomme. Det som skjer
er
> >at jeg
> >"mister" disse postene ved utlisting/spørring til databasen. Brukere skal
> >via søkeskjema ha mulighet til å søke i de forskjellige kolonnene, og
dette
> >fungerer bortsett fra de postene som faller utenfor. Noen som kan hjelpe?
> >
> >Bjørn
> >
> ><%
> >Dim Recordset1__varNavn
> >Recordset1__varNavn = "%"
> >if (Request.QueryString("txtNavn") <> "") then Recordset1__varNavn =
> >Request.QueryString("txtNavn")
>
> Hvis et databasefelt er tomt, så har den værdien Null (som ikke er det
> samme som Empty eller 0 eller ""), så du er nødt til at checke på den
> også:
> Recordset1__varNavn = "%"
> txtNavn = Request.QueryString("txtNavn")
> If Trim(txtNavn) <> "" Or Trim(txtNavn) <> Null Then
> Recordset1__varNavn = Request.QueryString("txtNavn")
>
> (Hvis du checker for en tom streng, så brug altid Trim også.)
>
> Good luck,
> Jørn
>
> --
> Jørn Andersen,
> Brønshøj
| |
Jørn Andersen (07-03-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 07-03-02 12:40 |
|
On Wed, 6 Mar 2002 21:57:21 +0100, "Bjørn Jakobsen"
<bjornja@vestfoldnett.no> wrote:
>Takk for tipset. Har også vært inne på tanken med IS NULL, men fikk beskjed
>om "Null data". Uansett, jeg prøver.
Jeg tror egentlig også der er en fejl i mit forslag:
>> Recordset1__varNavn = "%"
>> txtNavn = Request.QueryString("txtNavn")
>> If Trim(txtNavn) <> "" Or Trim(txtNavn) <> Null Then
>> Recordset1__varNavn = Request.QueryString("txtNavn")
If Trim(txtNavn) <> "" Or Not IsNull(txtNavn) Then
- eller rettere 2 fejl:
1) Det er altid et problem at *sammenligne* med Null - bedre at checke
for Null (med IsNull)
2) Og det giver selvfølgelig ingen mening at Trim'me Null
Good luck,
Jørn
--
Jørn Andersen,
Brønshøj
| |
Jørn Andersen (07-03-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 07-03-02 13:10 |
|
On Thu, 07 Mar 2002 12:39:38 +0100, Jørn Andersen <jorn@jorna.dk>
wrote:
>If Trim(txtNavn) <> "" Or Not IsNull(txtNavn) Then
- og så skal det selvfølgelig være "And" i st.f. "Or"
Good luck,
Jørn
--
Jørn Andersen,
Brønshøj
| |
Bjørn Jakobsen (07-03-2002)
| Kommentar Fra : Bjørn Jakobsen |
Dato : 07-03-02 14:25 |
|
Hei, dette må jeg forsøke!
Takk for hjelpen.
Har et annet problem også som jeg trenger litt hjelp med:
Fra en søkeside ønsker jeg å la brukerne velge fra en dropdown liste, la oss
kalle den "Valg1". Brukeren får her to valg, enten "større enn eller lik"
(>=)
eller "mindre enn eller lik" (<=) et variabelt tall som brukeren kan taste
inn i tekstfeltet "txtFormue".
Har knottet litt på dette, men får ikke dette til å fungere. Hva gjør jeg
galt?
Bjørn Jakobsen
Script følger:
<%
Dim Valg1, Search_String
Valg1 = Request("Valg1")
SearchColumn = "Formue"
if(Valg1 <> ">=") then
Search_String = "WHERE " & "txtFormue" & " LIKE '%"
else
if(Valg1 = ">=") then
Search_String = "WHERE " & "txtFormue" & " LIKE '>=%"
else
if(Valg1 = "<=") then
Search_String = "WHERE " & "txtFormue" & " LIKE '<=%"
else
end if
%>
"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:c2me8ug4mtfjcf7857mlcmaho5tc9ct2m3@4ax.com...
> On Thu, 07 Mar 2002 12:39:38 +0100, Jørn Andersen <jorn@jorna.dk>
> wrote:
>
> >If Trim(txtNavn) <> "" Or Not IsNull(txtNavn) Then
>
> - og så skal det selvfølgelig være "And" i st.f. "Or"
>
> Good luck,
> Jørn
>
> --
> Jørn Andersen,
> Brønshøj
| |
Jørn Andersen (07-03-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 07-03-02 15:09 |
|
On Thu, 7 Mar 2002 14:25:10 +0100, "Bjørn Jakobsen"
<bjornja@vestfoldnett.no> wrote:
>Fra en søkeside ønsker jeg å la brukerne velge fra en dropdown liste, la oss
>kalle den "Valg1". Brukeren får her to valg, enten "større enn eller lik"
>(>=)
>eller "mindre enn eller lik" (<=) et variabelt tall som brukeren kan taste
>inn i tekstfeltet "txtFormue".
<snip>
><%
>Dim Valg1, Search_String
>Valg1 = Request("Valg1")
>SearchColumn = "Formue"
>if(Valg1 <> ">=") then
>Search_String = "WHERE " & "txtFormue" & " LIKE '%"
> else
>if(Valg1 = ">=") then
>Search_String = "WHERE " & "txtFormue" & " LIKE '>=%"
> else
>if(Valg1 = "<=") then
>Search_String = "WHERE " & "txtFormue" & " LIKE '<=%"
> else
> end if
>%>
Der er flere ting galt :)
Hvis du skal bruge flere if'er, så:
If .. Then
ElseIf ... Then
ElseIf ... Then
Else
End If
- men hvis du ellers har "End If"'er nok, skulle dit eget nu også
virke.
(Nogle foretrækker Case Select i st.f. mange If'er)
Dernæst kan du ikke bruge LIKE sammen med større/mindre
sammenligninger.
Desuden: Er txtFormue ikke en variabel? SOm du vil sammenligne med et
*tal* fra databasen - så:
intFormue = CLng(txtFormue)
" WHERE fieldname <= " & intFormue & ";"
- hvor feltnavnet fra db er "fieldname"
Resten er lidt uigennemskueligt for mig - udskriv evt. din SQL-streng
med:
Response.Write strSQL
Response.End
- så bliver det sikkert mere gennemskueligt, hvor din fel ligger.
Good luck,
Jørn
PS: Gider du tage et kig på:
<URL: http://www.usenet.dk/netikette/citatteknik.html>
--
Jørn Andersen,
Brønshøj
| |
|
|