Avatar billede kroger Nybegynder
11. august 2002 - 23:22 Der er 15 kommentarer og
1 løsning

søg AND i flere rækker

Jeg har en lidt tricky søgning. Der søges i flere rækker med OR:
SELECT navn, by1, adresse FROM ba WHERE (navn LIKE '%a%') OR (by1 LIKE '%a%') OR (adresse LIKE '%a%') ORDER BY navn;

Spm. er hvordan får jeg den til at søge på flere ord med AND, men hvor begge ord ikke behøves at være i samme felt. F.eks.
Hvis man skriver bjarne københavn, vil den finde bjarne i kolonnen navn og københavn i kolonnen by1.
?
Avatar billede medions Nybegynder
11. august 2002 - 23:43 #1
fx. sådan her:

strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"

//>Rune
Avatar billede medions Nybegynder
12. august 2002 - 00:11 #2
Hmm hvorfor har du afvist?

//>Rune
Avatar billede kroger Nybegynder
12. august 2002 - 00:14 #3
Den dur ikke (er faktisk den jeg bruger nu.) Den gør at det ENTEN skal være det ene ord eller det andet, f.eks. vil ovenstående (bjarne københavn) finde alle poster med enten bjarne eller københavn. Det jeg vil have er at den enkelte række skal indeholde begge ord, men det behøves ikke nødvendigvis være i samme kolonne. Jeg prøve lige en grafisk opstilning af tabellen:

navn      adresse        by1
bjarne      vejen 8      københavn
erik        gaden 9      københavn

Jeg vil have den til så den kun finder øverste post med bjarne.
Avatar billede medions Nybegynder
12. august 2002 - 00:14 #4
Hmm.. det kunne jo oxo være at jeg har misforstået det.. jeg prøver lige igen..!

strKeyword = "Bjarne København"
arrKeyword = Split(strKeyWord," ")

SELECT navn, by1, adresse FROM ba WHERE (navn LIKE '%" & arrKeyword(1) & "%') OR (by1 LIKE '%" & arrKeyword(1) & "%' ORDER BY navn;

sådan..
//>Rune
Avatar billede kroger Nybegynder
12. august 2002 - 00:15 #5
JEg prøver lige..
Avatar billede medions Nybegynder
12. august 2002 - 00:17 #6
Nej hov..

strKeyword = "Bjarne København"
arrKeyword = Split(strKeyWord," ")

SELECT navn, by1, adresse FROM ba WHERE (navn LIKE '%" & arrKeyword(0) & "%') OR (by1 LIKE '%" & arrKeyword(1) & "%' ORDER BY navn;

Denne kode deler Bjarne København i 2 ved mellemrummet..!

//>Rune
Avatar billede kroger Nybegynder
12. august 2002 - 00:20 #7
Hvis der kun søges på 1 ord kommer følgende:

Subscript out of range: '[number: 1]'

Hvilket hentyder til din linie.

Hvis jeg søger på to ord bruger den kun det sidste...
Avatar billede kroger Nybegynder
12. august 2002 - 00:23 #8
Jeg kender godt split funktionen, men som jeg kan se på koden vil den søge efter bjarne i navne feltet og efter københavn i by1 feltet, og det er ikke helt meningen JEg ved ikke om min ide er umulig...

Den skal vist gøre noget i retning ala hvor den søger efter begge ord i en række, og hvis den kun finder en af forkomsterne er det fint, men når den har været hele rækken igennem skal begge ord have optrådt. Wow hvor er det svært at forklare..
Avatar billede medions Nybegynder
12. august 2002 - 00:23 #9
well, så er du jo nødt til at validere det med nogle If og Then sætninger!

//>Rune
Avatar billede kroger Nybegynder
12. august 2002 - 00:24 #10
Kun finder en forkomsterne i hver kolonne....
Avatar billede kroger Nybegynder
12. august 2002 - 00:27 #11
Jaja for subscript fejlen, den er sq nem nok, det er bare den spadsede sammensætning af AND og OR jeg er ved at få hovedpine af...
Avatar billede medions Nybegynder
12. august 2002 - 00:38 #12
Hmm... Der er ikke andet at gøre end at valider med en masse If og Then statements..!

//>Rune
Avatar billede kroger Nybegynder
12. august 2002 - 00:41 #13
Tja... Det er bare ikke så fed en måde at gøre det på. Jeg lader den stå lidt, så kan du få pointene hvis der ikke er andre der kan.
Avatar billede medions Nybegynder
12. august 2002 - 00:43 #14
Fair nok...
Godnat!

//>Rune
Avatar billede kroger Nybegynder
17. august 2002 - 22:24 #15
Den er vist gået total død, nå men så får du pointene medions
Avatar billede medions Nybegynder
18. august 2002 - 12:40 #16
Fair nok ;o)
Thx 4 Poinz

//>Rune
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