Avatar billede nybroe Nybegynder
03. december 2002 - 08:57 Der er 8 kommentarer og
1 løsning

Fritekst søgning

Jeg har en fritextsøgning på en side men den virker ikke

SQL = "SELECT * FROM Info WHERE"
SQL = SQL & " ((Kunde LIKE '%" & strKunde & "%')"
SQL = SQL & " and (Sag LIKE '%" & strSag & "%')"
SQL = SQL & " and (Beskrivelse LIKE '%" & strBeskivelse & "%')"
SQL = SQL & " and (Sags LIKE '%" & strSags & "%')"
SQL = SQL & " and (Status LIKE '%" & strStatus & "%'))"

Alle feldter skal ikke udfylds, det er måske der for den ikke virker men hvis der er en der har en måde at for det til at virke ville jeg blive glad :0)
Avatar billede medions Nybegynder
03. december 2002 - 08:59 #1
Brug OR i stedet for AND!

SQL = "SELECT * FROM Info WHERE"
SQL = SQL & " ((Kunde LIKE '%" & strKunde & "%')"
SQL = SQL & " or (Sag LIKE '%" & strSag & "%')"
SQL = SQL & " or (Beskrivelse LIKE '%" & strBeskivelse & "%')"
SQL = SQL & " or (Sags LIKE '%" & strSags & "%')"
SQL = SQL & " or (Status LIKE '%" & strStatus & "%'))"

//>Rune
Avatar billede eagleeye Praktikant
03. december 2002 - 09:00 #2
Så skal du bruge OR og ikke AND hvis du vil hvad den skal finde hvor en ting er opfyldt og ikke alle.:

SQL = "SELECT * FROM Info WHERE"
SQL = SQL & " ((Kunde LIKE '%" & strKunde & "%')"
SQL = SQL & " OR (Sag LIKE '%" & strSag & "%')"
SQL = SQL & " OR (Beskrivelse LIKE '%" & strBeskivelse & "%')"
SQL = SQL & " OR (Sags LIKE '%" & strSags & "%')"
SQL = SQL & " OR (Status LIKE '%" & strStatus & "%'))"
Avatar billede eagleeye Praktikant
03. december 2002 - 09:02 #3
Men det bedste er at fjerne de felter som du ikke søger på da den så vidt jeg husker finder alle records hvis man skriver:  kolonne LIKE '%%'
Avatar billede medions Nybegynder
03. december 2002 - 09:02 #4
eagleeye> ;o)

//>Rune
Avatar billede nybroe Nybegynder
03. december 2002 - 09:04 #5
Ja men hvis der er 2 feldter der er udfyldt så skal det være "AND"
Avatar billede eagleeye Praktikant
03. december 2002 - 09:09 #6
hvis du udfylder alle felter virker den så??
Avatar billede eagleeye Praktikant
03. december 2002 - 09:14 #7
Eller må du lavet noget i stil med disse if sætninger så du kun får de felter med som er udfyldt:


if strKunde <> "" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " AND " 
  SQLwhere = SQLwhere & "(Kunde LIKE '%" & strKunde & "%')"
end if
if strSag <> "" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " AND " 
  SQLwhere = SQLwhere & "(SagLIKE '%" & strSag & "%')"
end if
if strBeskivelse <> "" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " AND " 
  SQLwhere = SQLwhere & "(Beskrivelse LIKE '%" & strBeskivelse & "%')"
end if
if strSags <> "" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " AND " 
  SQLwhere = SQLwhere & "(Sags LIKE '%" & strSags & "%')"
end if
if strStatus <> "" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " AND " 
  SQLwhere = SQLwhere & "(Status LIKE '%" & strStatus & "%')"
end if

SQL = "SELECT * FROM Info WHERE " & SQLwhere
Avatar billede nybroe Nybegynder
03. december 2002 - 09:18 #8
Ja det gøre den. Den virker næsten også hvis man kun udfyler et feldt men den tager ikke alle records fra DB med og jeg tror at det er fordi at man søger med tomme feldter og de så bliver brugt på en eller anden måde.
Avatar billede nybroe Nybegynder
03. december 2002 - 09:24 #9
Jeg siger TAK
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

IT-JOB