Avatar billede minielsen Nybegynder
12. april 2002 - 09:08 Der er 3 kommentarer og
1 løsning

List alt fra en ms2000 DB

Jeg har et søge index hvor mine brugere kan søge på indholdet i min DB.

Kan jeg tilføje en funktion så man lister HELE indholdet af DB ?

Kode af search:
<%
' Henter værdien fra soeg.htm
strKeyword = Trim(Request.Form("Keyword"))

If Len(strKeyword) = 0 Then
    ' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect("stiksearch.htm")
Else
    ' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,"'","''")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT ID, mærke, model, sort, brun, rød, orange, gul, grøn, hvid, special1, special2 FROM stik WHERE"
strSQL = strSQL & " (mærke LIKE '" & strKeyword & "')"
strSQL = strSQL & " OR (model LIKE '" & strKeyword & "')"


' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/stikdatabase.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    ' Hvis der er fundet poster på søgningen
    Response.Write "<p><strong>Resultat af søgning.</p></strong>"
    Response.Write "<TABLE BORDER=1>"
    Response.Write "<tr><th>Producent</th><th>Type</th><TD WIDTH=50 BGCOLOR=black></td><TD WIDTH=50 BGCOLOR=brown></td><TD WIDTH=50 BGCOLOR=red></td><TD WIDTH=50 BGCOLOR=orange></td><TD WIDTH=50 BGCOLOR=yellow></td><TD WIDTH=50 BGCOLOR=green></td><TD WIDTH=50 BGCOLOR=white></td><td WIDTH=50 BGCOLOR=blue></td><TD WIDTH=50 BGCOLOR=pink></td></th>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & rs("mærke") & "</td>"
        Response.Write "<td>" & rs("model") & "</td>"
        Response.Write "<td>" & rs("sort") & "</td>"
        Response.Write "<td>" & rs("brun") & "</td>"
        Response.Write "<td>" & rs("rød") & "</td>"
        Response.Write "<td>" & rs("orange") & "</td>"
        Response.Write "<td>" & rs("gul") & "</td>"
        Response.Write "<td>" & rs("grøn") & "</td>"
        Response.Write "<td>" & rs("hvid") & "</td>"
        Response.Write "<td>" & rs("special1") & "</td>"
        Response.Write "<td>" & rs("special2") & "</td></tr>"

        rs.MoveNext
    Loop
    Response.Write "</table>"
   
Else
    ' Hvis der ikke er fundet poster på søgningen
    Response.Write "<p><font color=red><strong>Ikke fundet.</p>"
    End If

' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>


Kode af input:
<BODY BGCOLOR="#D3E2D3">
<P><FONT SIZE="-1" FACE="Tahoma"><B>Indtast producent navn eller type betegnelse.</B></FONT></P>
<P><FONT SIZE="-1" FACE="Tahoma"><B>Feks. Compaq eller MV720.</B></FONT></P>


<P><FORM ACTION="stiksearch.asp" METHOD=POST>
  <P><INPUT TYPE=text NAME=keyword VALUE="" SIZE=14><BR>
  <INPUT TYPE=submit NAME=Action VALUE="Søg">
</FORM></P>
Avatar billede coltau Juniormester
12. april 2002 - 14:36 #1
Hvis du beslutter dig for at et blank søgeord betyder at man vil se alle så kan du ændre disse linier:

If Len(strKeyword) = 0 Then
    ' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect("stiksearch.htm")
Else
    ' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,"'","''")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT ID, mærke, model, sort, brun, rød, orange, gul, grøn, hvid, special1, special2 FROM stik WHERE"
strSQL = strSQL & " (mærke LIKE '" & strKeyword & "')"
strSQL = strSQL & " OR (model LIKE '" & strKeyword & "')"

til:

If Len(strKeyword) = 0 Then
    ' Hvis der ikke er skrevet i feltet
    ' så vi alle
    strSQL = "SELECT ID, mærke, model, sort, brun, rød, orange, gul, grøn, hvid, special1, special2 FROM stik"
Else
    ' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,"'","''")
    ' Opbygger en dynamisk SQL streng
    strSQL = "SELECT ID, mærke, model, sort, brun, rød, orange, gul, grøn, hvid, special1, special2 FROM stik WHERE"
    strSQL = strSQL & " (mærke LIKE '" & strKeyword & "')"
    strSQL = strSQL & " OR (model LIKE '" & strKeyword & "')"
End If
Avatar billede minielsen Nybegynder
12. april 2002 - 14:51 #2
Det virker fint, men den søger sådan lidt rodet, kan man gøre så den søger alfabetisk startende med a ?

ps: du skal nok få dine points :)
Avatar billede coltau Juniormester
12. april 2002 - 15:33 #3
Så skal der bare en rækkefølge på med SQL-kommandoen: order by

strSQL = "SELECT ID, mærke, model, sort, brun, rød, orange, gul, grøn, hvid, special1, special2 FROM stik ORDER BY mærke, model"

Læg mærke til at man bestemmer rækkefølgen ved at angive hvilke felter der skal sorteres efter. Her er brugt: mærke, model
Felterne adskilles med komma.
Avatar billede minielsen Nybegynder
12. april 2002 - 15:43 #4
cool , tak for hjælpen
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