Avatar billede ahjdp1 Nybegynder
26. november 2003 - 20:28 Der er 8 kommentarer og
1 løsning

Søgefunktion med ja/nej felter og selectboks

Er der nogen der har et eksempel på en søgefunktion hvor man kan søge i en database med ja/nej felter og select-bokse.
Mht. select-boksene kan man enten vælge et udsagn eller vælge alle og så søger den efter alt i databasen.
Avatar billede mathiasrav Nybegynder
26. november 2003 - 20:55 #1
Øhh, i input siden (hvor ja/nej osv. tingene er) laver du naturligvis en form. I submitsearch.asp eller hvad du vil kalde den skriver du:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * From tabelnavn Where "
If Request("TekstFelt1") <> "" Then strSQL = strSQL & "TekstFelt1 = '" & Request("TekstFelt1") & "'"
If Request("TalFelt1") <> "" Then strSQL = strSQL & "TalFelt1 = " & Request("TalFelt1")

osv.

// Mathias

Set rs = Conn.Execute(strSQL)
Avatar billede mathiasrav Nybegynder
26. november 2003 - 20:55 #2
Ups, glemte lige %> til sidst ;)
Avatar billede mathiasrav Nybegynder
26. november 2003 - 20:57 #3
Og noget andet, her er den færdige kode:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * From tabelnavn Where "
If Request("TekstFelt1") <> "" Then strSQL = strSQL & "TekstFelt1 = '" & Request("TekstFelt1") & "'"
If Request("TalFelt1") <> "" Then strSQL = strSQL & "TalFelt1 = " & Request("TalFelt1")

Set rs = Conn.Execute(strSQL)

Do Until rs.EOF
Response.Write Et eller andet
Og noget andet
Loop

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
%>
Avatar billede ahjdp1 Nybegynder
26. november 2003 - 21:17 #4
Mangler der ikke noget med AND eller sådant noget i sætningen?
Avatar billede ahjdp1 Nybegynder
26. november 2003 - 21:18 #5
så man kan søge efter flere ting på én gang
Avatar billede mathiasrav Nybegynder
04. januar 2004 - 19:26 #6
Jo selvfølgelig...
Du erstatter bare

strSQL = "Select * From tabelnavn Where "
If Request("TekstFelt1") <> "" Then strSQL = strSQL & "TekstFelt1 = '" & Request("TekstFelt1") & "'"
If Request("TalFelt1") <> "" Then strSQL = strSQL & "TalFelt1 = " & Request("TalFelt1")

med

strSQL = "Select * From tabelnavn Where "
If Request("TekstFelt1") <> "" Then
  If Not Right(strSQL, 6) = "Where " Then
    strSQL = strSQL "And "
  End If
  strSQL = strSQL & "TekstFelt1 = '" & Request("TekstFelt1") & "'"
End If
If Request("TalFelt1") <> "" Then
  If Not Right(strSQL, 6) = "Where " Then
    strSQL = strSQL "And "
  End If
  strSQL = strSQL & "TalFelt1 = '" & Request("TalFelt1") & "'"
End If
Avatar billede ahjdp1 Nybegynder
04. januar 2004 - 20:20 #7
det virker ikke helt med den nye kode du har skrevet
Avatar billede mathiasrav Nybegynder
05. oktober 2004 - 18:33 #8
Undskyld jeg ikke har svaret, det er fordi jeg ikke har brugt min Hotmail i et stykke tid *retter hurtigt sin email* men her er koden, den burde virke:

strSQL = "Select * From tabelnavn Where "
If Request("TekstFelt1") <> "" Then
  If Not Right(strSQL, 6) = "Where " Then
    strSQL = strSQL " And "
  End If
  strSQL = strSQL & "TekstFelt1 = '" & Request("TekstFelt1") & "'"
End If
If Request("TalFelt1") <> "" Then
  If Not Right(strSQL, 6) = "Where " Then
    strSQL = strSQL " And "
  End If
  strSQL = strSQL & "TalFelt1 = '" & Request("TalFelt1") & "'"
End If
Avatar billede mathiasrav Nybegynder
05. oktober 2004 - 18:33 #9
Hvis du husker at skrive fejlen, deskriptionen og linien, så er det lettere at hjælpe dig ;-)
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