Avatar billede jones279 Nybegynder
20. april 2003 - 23:47 Der er 5 kommentarer og
1 løsning

Søgekriterier i Access...

Hey all...

Jeg har en del problemmer med at få en søgeform til virke...
http://www.buttcher.dk/vin > Vinoversigt

Prøv at skrive 1000 i min-pris... Så skulle der ikke komme nogle vine ud... Men der kommer ti varenumre ud alligevel... Kort sagt: Den reagere ikke på min pris >= 1000 !!

Her submitdelen af koden:

If request("submit") <> "" then
    'Brugeren vil søge!
    strSQL = "SELECT * FROM vin WHERE "
   
    If Request("land") = "alle" then
        set area = conn.execute("SELECT OmrådeID FROM Område")
    Else
        set area = conn.execute("SELECT OmrådeID FROM Område WHERE LandID = " & Replace(Request("land"),","," OR LandID ="))
       
    End if
    strareaID = ""
    If Not area.EOF then
        While NOT area.EOF
            strareaID = strareaID & "OR OmrådeID = " & area("OmrådeID") & " "
        area.MoveNext
        Wend
    End if   
    strSQL = strSQL & "OmrådeID=" & Right(strareaID,Len(strareaID)-13)
   
    If Len(request("maxpris")) > 1    then
        strSQL = strSQL & " AND pris <= " & Request("maxpris")
    End if

    If Len(request("minpris")) > 1    then
        strSQL = strSQL & " AND pris >= " & Request("minpris")
    End if
   
    If request("fritekst") <> "" then
        strSQL = strSQL & " AND navn LIKE '%" & Request("fritekst") & "%'"
    End if
   
    If NOT Request("type") = "alle" then
        strSQL = strSQL & " AND type=" & Replace(Request("type"),","," OR")
    End if
   
    Response.Write strSQL & "<BR><BR>"
    set vin = conn.execute(strSQL)
   
    If not vin.EOF then
        While NOT vin.EOF
            Response.Write vin("varenummer") & "<BR>"
        vin.moveNext
        Wend
    End if
Else

......
20. april 2003 - 23:51 #1
Jeg får: The page cannot be displayed
når jeg klikker på knappen: Søg efter vin
Avatar billede eagleeye Praktikant
20. april 2003 - 23:58 #2
Det er fordi du har lavet din SQL sådan her:

"SELECT * FROM vin WHERE OmrådeID= 1 OR OmrådeID = 2 AND pris >= 1000"


Det betyder den finder alle hvor  OmrådeID = 1, Samt alle hvor OmrådeID = 2 OG prisen >=1000

Det er fodi AND ahr højre betydning end OR og bliver udført først så den SQL du udføre er den samme som denne her:

"SELECT * FROM vin WHERE (OmrådeID= 1) OR (OmrådeID = 2 AND pris >= 1000)"


Så prøv at få styr på AND og OR ved at sætte parenteser ind, altså så den søger på pris >= OG (OmrådeID = 1 ELLLER OmrådeID = 2)

"SELECT * FROM vin WHERE (OmrådeID= 1 OR OmrådeID = 2) AND (pris >= 1000)"
20. april 2003 - 23:59 #3
SELECT * FROM vin WHERE OmrådeID= 1 OR OmrådeID = 2 AND pris >= 1.000

ændres til

SELECT * FROM vin WHERE (OmrådeID= 1 OR OmrådeID = 2) AND pris >= 1.000
Avatar billede eagleeye Praktikant
21. april 2003 - 00:02 #4
Så du skal lave dette stykke kode om:

    strSQL = "SELECT * FROM vin WHERE "

    If Request("land") = "alle" then
        set area = conn.execute("SELECT OmrådeID FROM Område")
    Else
        set area = conn.execute("SELECT OmrådeID FROM Område WHERE LandID = " & Replace(Request("land"),","," OR LandID ="))
       
    End if
    strareaID = ""
    If Not area.EOF then
        While NOT area.EOF
            strareaID = strareaID & "OR OmrådeID = " & area("OmrådeID") & " "
        area.MoveNext
        Wend
    End if   
    strSQL = strSQL & "OmrådeID=" & Right(strareaID,Len(strareaID)-13)





Til dette:

    strSQL = "SELECT * FROM vin WHERE ("          '<---- Tiløjet en (

    If Request("land") = "alle" then
        set area = conn.execute("SELECT OmrådeID FROM Område")
    Else
        set area = conn.execute("SELECT OmrådeID FROM Område WHERE LandID = " & Replace(Request("land"),","," OR LandID ="))
       
    End if
    strareaID = ""
    If Not area.EOF then
        While NOT area.EOF
            strareaID = strareaID & "OR OmrådeID = " & area("OmrådeID") & " "
        area.MoveNext
        Wend
    End if   
    strSQL = strSQL & "OmrådeID=" & Right(strareaID,Len(strareaID)-13)
    strSQL = strSQL & ") "      '<------- Tilføjet sidste )
Avatar billede jones279 Nybegynder
21. april 2003 - 00:20 #5
erikjuul >> Jeg ved ikke helt hvad du har drukket! ;)

eagleeye >> Tusind tak! =)
Avatar billede herrig Nybegynder
07. december 2004 - 17:21 #6
”du skal jo huske at have værdien med i udtrykket:

Værdi >= 0,4 And Værdi <= 0,6”

Tja men programmet brokker sig stadig...

Vi er enige om at denne sætning skal stå i criteria:

[Cb, FnLow, FnHigh]![Cb]>=[Forms]![search master]![Cb min] And [Cb, FnLow, FnHigh]![Cb]<=[Forms]![search master]![Cb max]

Denne sætning skriver jeg under Criteria for Report nummeret
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester