11. juli 2002 - 09:18Der er
5 kommentarer og 2 løsninger
Søg i flere felter
Jeg har en access 2000 db med 25 felter. Jeg har en online form hvor man søger på kundenummer, men er det muligt at søge på flere felter i samme form ?
Feks.
Brugeren kan i dag intaste sin email i en form og så få listet alle informationerne om sin konto, men jeg ønsker at han ENTEN kan indtaste email ELLER telefonnummer , hvordan gør jeg dette i samme form ?
ja det kan gøres i samme form, du laver en form med alle deinputs du vil havde.. søge siden:
email = request.form("email") tlf = request.form("tlf") navn = request.form("navn")
Din SQL:
sqlWhere = "" if email <> "" then sqlWhere = sqlWhere & "email = '" & email & "'" end if if tlf <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " end if sqlWhere = sqlWhere & "tlf = '" & tlf & "'" end if if navn <> "" then if sqlWhere <> "" then sqlWhere = sqlWhere & " AND " end if sqlWhere = sqlWhere & "navn = '" & navn & "'" end if
osv med andre kolonner
strSQL = "SELECT * FROM tabel WHERE " & sqlWhere set rs=connection.execute strSQL
Søgeformen har jeg her er scriptet, måske du kan fortælle mig hvordan jeg ændrer det (jeg ved det ikke)
Her er lidt af koden (del del der skal ændres) jeg benytter idag "nummer" (keyword) men ønsker også at benytte "kundeemail"
<%
' 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("test.htm") Else ' Hvis der er skrevet i feltet strKeyword = Replace(strKeyword,"'","''") End If
' Opbygger en dynamisk SQL streng strSQL = "SELECT ID, nummer, forhandlernavn, forhandleradr, forhandlerpostnr, forhandlerby, forhandlertele, kundenavn, kundeadr, kundepostnr, kundeby, kundetele, kundeemail, type, kundeudstyr, dato, kundefejl, kunderep, kundepris, status, datoslut FROM usgdatabase WHERE" strSQL = strSQL & " (nummer LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (forhandlernavn LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (forhandleradr LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (forhandlerpostnr LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (forhandlerby LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (forhandlertele LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundenavn LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundeadr LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundepostnr LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundeby LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundetele LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundeemail LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (type LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundeudstyr LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (dato LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (kundefejl LIKE '" & strKeyword & "')" strSQL = strSQL & " OR (datoslut LIKE '" & strKeyword & "')" ' Skaber DSNLess forbindelse til DBen strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=database.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
Jeg har løst det. Point til jer, flest til eagleeye da dette svar var bedst (set med mine øjne)
Synes godt om
Ny brugerNybegynder
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.