Avatar billede danskebanner Nybegynder
11. juli 2002 - 09:18 Der 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 ?
Avatar billede Søren Bech Morsing Praktikant
11. juli 2002 - 09:27 #1
WHERE (felt1 LIKE '%" & searchword & "%' OR felt2 LIKE '%" & searchword & "%') AND fx flere
Avatar billede Søren Bech Morsing Praktikant
11. juli 2002 - 09:28 #2
hey 200 point er vidst i overkanten :)

30-60 må være rimeligt
Avatar billede eagleeye Praktikant
11. juli 2002 - 09:28 #3
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

..udskriv resultatet..
Avatar billede eagleeye Praktikant
11. juli 2002 - 09:30 #4
dein form kommer eksvis til at se sådan her ud, simpelt eks:

<form method="post" action=".....asp">
Email <input type="text" name="email"><br>
Telefon <input type="text" name="tlf"><br>
Navn <input type="text" name="navn"><br>
<input type="submit" values="Søg">
</form>
Avatar billede danskebanner Nybegynder
11. juli 2002 - 09:37 #5
var det for mange point ?
haha jeg troede spørsmålet var svært, jeg afprøver lige og uddeler point senere
Avatar billede danskebanner Nybegynder
11. juli 2002 - 09:53 #6
eagleeye:

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
   
    Response.Write "<table border=1>"
    Response.Write "<th>Faktura nummer</th><th>Status</th><th>Rep. påbegndt</th><th>Rep. afsluttet.</th>"
   
        Response.Write "<tr><td><font color=blue> " & rs("nummer") & "</td>"
        Response.Write "<td><font color=blue>" & rs("status") & "</td>"
        Response.Write "<td><font color=blue> " & rs("dato") & "</td>"
        Response.Write "<td><font color=blue> " & rs("datoslut") & "</td></tr>"
        Response.Write "</table>"
        Response.Write "<th>···</th>"
Avatar billede danskebanner Nybegynder
11. juli 2002 - 09:58 #7
Jeg har løst det.
Point til jer, flest til eagleeye da dette svar var bedst (set med mine øjne)
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