Avatar billede zetn Nybegynder
21. juni 2004 - 23:22 Der er 10 kommentarer og
1 løsning

Søgning i Access

Hej eksperter

Jeg er ved at lave en side hvorpå det skal være muligt at søge i en access database.

Jeg har følgende felter:

- type (BLIVER udfyldt)

- kontantpris

- tal1

- tal2

- kommune

Hvordan kan jeg lave det, når det eneste jeg kan være sikker på at brugeren vælger er type, men hvis brugeren udfylder de andre felter skal den også tage efter dem?

På forhånd tak!
Avatar billede phineas_phreak Nybegynder
22. juni 2004 - 00:04 #1
sådan kan du hente data ud fra din database hvor folk kun søger efter type. Hvis det er det du mener. så skal du bare vælge hvad du vil ha skrevet ud

sogeord = Request.Form("soegeord")

strSQL = "SELECT * FROM plastic WHERE typekolonne='" & sogeord & "'"
Set rs = conn.Execute(strSQL)


mener type er reserveret ord
Avatar billede zetn Nybegynder
22. juni 2004 - 00:06 #2
Ja det kan jeg godt selv, men problemet kommer når jeg skal have alt det andet med i, hvis brugeren nu kun udfylder 2 af de 5 felter osv...
Avatar billede phineas_phreak Nybegynder
22. juni 2004 - 00:13 #3
nu tror jeg ikke jeg forstår hvad det er du vil ha. vil du ha en søgemaskine der frit kan søge på alt i tabellen og få returneret samtlige poster hvor søgeordet passer eller hvordan er det ?

i så tilfælde ville jeg mene du kan bruge OR og LIKE:

strSQL = "SELECT * FROM plastic WHERE kolonne1 LIKE '" & sogeord & "'" OR kolonne2 LIKE '" & sogeord & "'" OR kolonne3 LIKE '" & sogeord & "'" OR kolonne4 LIKE '" & sogeord & "'" OR kolonne5 LIKE '" & sogeord & "'"
Set rs = conn.Execute(strSQL)
Avatar billede phineas_phreak Nybegynder
22. juni 2004 - 00:15 #4
Avatar billede zetn Nybegynder
22. juni 2004 - 00:15 #5
Det skal være så en bruger har muligheden for at skrive date i 5 felter:

- type (BLIVER udfyldt)

- kontantpris

- tal1

- tal2

- kommune

Hvis brugeren kun udfylder 2 felter skal den kun søge på de 2 kriterier, hvis 3 felter 3 kriterier osv..
Avatar billede phineas_phreak Nybegynder
22. juni 2004 - 00:22 #6
kunne man så ikke evt opbygge 5 forskellige SQLstrings og checke om feltet er tomt.

IF request.form("kontantpris") <> "" THEN
SQLkontantpris = "SELECT * FROM tabel WHERE kontantpris='" & kontantprissogeord & "'"
Set rs = conn.Execute(SQLkontantpris)
END IF

IF request.form("tal1") <> "" THEN
SQLtal1 = "SELECT * FROM tabel WHERE tal1='" & kontantprissogeord & "'"
Set rs = conn.Execute(SQLtal1)
END IF



osv.
Avatar billede phineas_phreak Nybegynder
22. juni 2004 - 00:23 #7
bemærk at de SQLen kun bliver executed hvis kriteriet er sandt.
Avatar billede zetn Nybegynder
22. juni 2004 - 09:52 #8
Man kan gøre det på en meget smartere måde, hvilket er den jeg søger..
Avatar billede zetn Nybegynder
24. juni 2004 - 16:23 #9
/lukker
Avatar billede phineas_phreak Nybegynder
24. juni 2004 - 17:15 #10
hvad var løsningen så ?
Avatar billede zetn Nybegynder
24. juni 2004 - 17:17 #11
strSQL = "Select * From " & kind & " where"
strSQL = strSQL & " ((type LIKE '" & type & "')"
strSQL = strSQL & " and (Kontantpris between '" & pris1 & "' and '" & pris2 &"')"
strSQL = strSQL & " and (tal1 LIKE '%" & tal1 & "%')"
strSQL = strSQL & " and (tal2 LIKE '%" & tal2 & "%')"
strSQL = strSQL & " and (kommune LIKE '%" & kommune & "%'))"
set rs = conn.execute(strSQL)
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