Avatar billede maron Nybegynder
07. september 2002 - 11:12 Der er 18 kommentarer og
3 løsninger

Søgning

Denne streng søger på ord som indeholder dele af ordet

strSQL = strSQL & " OR (navn LIKE '%" & strKeyword & "%')"

Jeg synes jeg har prøvet alverdens ting for at ændre det så der søges præcis på ordet.
Jeg er klar over at % tegnet skal udskiftes, men til hvad og hvordan?
Avatar billede misbruger Nybegynder
07. september 2002 - 11:22 #1
strSQL = strSQL & " OR (navn LIKE '" & strKeyword & "')"
Avatar billede sjap Praktikant
07. september 2002 - 11:30 #2
Prøv at erstatte dem med *
Avatar billede maron Nybegynder
07. september 2002 - 11:33 #3
At fjerne % hjælper ikke, søger stadig på dele af ordet.
Avatar billede sjap Praktikant
07. september 2002 - 11:40 #4
maron

virker nedenstående ikke?

strSQL = strSQL & " OR (navn LIKE '*" & strKeyword & "*')"
Avatar billede maron Nybegynder
07. september 2002 - 11:49 #5
Nej, hvis jeg fjerner % eller istedet indsætter *
søges der intet.
Avatar billede sjap Praktikant
07. september 2002 - 11:54 #6
Så må der være noget andet galt med din SQL-streng, for hvis jeg bruger nedenstående SQL-streng på en liste over danske kommuner får jeg resultaterne Brande, Randers og Skanderborg:

SELECT [tblKommune].Kommune
FROM [tblKommune]
WHERE ((([tblKommune].Kommune) Like "*ande*"));
Avatar billede maron Nybegynder
07. september 2002 - 11:58 #7
Jeg forstår det heller ikke, men hvad pokker kan der være galt?
Avatar billede sjap Praktikant
07. september 2002 - 11:59 #8
Prøv evt. at skrive hele strengen, så vi kan se hvad det er du gør!
Avatar billede maron Nybegynder
07. september 2002 - 12:01 #9
Det hele ser sådan ud

' Opbygger en dynamisk SQL streng
strSQL = "SELECT id, navn, FROM links WHERE"
strSQL = strSQL & " (id LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (navn LIKE '%" & strKeyword & "%')"
Avatar billede sjap Praktikant
07. september 2002 - 12:10 #10
Der er et komma for meget efter navn i første linie.
Avatar billede sjap Praktikant
07. september 2002 - 12:10 #11
Nåh, ja så skal du måske også lige huske det med *'erne :)
Avatar billede maron Nybegynder
07. september 2002 - 12:22 #12
Ja sådan

' Opbygger en dynamisk SQL streng
strSQL = "SELECT id, navn FROM links WHERE"
strSQL = strSQL & " (id LIKE '*" & strKeyword & "*')"
strSQL = strSQL & " OR (navn LIKE '*" & strKeyword & "*')"

Men virker heller ikke :-((
Avatar billede sjap Praktikant
07. september 2002 - 12:42 #13
Prøv at stoppe programmet umiddelbart efter strengen er lavet og vis strSQL i "Vinduet fejlfinding" (hedder det i Access 97). Her kan du se præcist hvordan strengen kommer til at se ud.
Avatar billede sjap Praktikant
07. september 2002 - 12:44 #14
Tag en kopi så vi kan se hvordan den ser ud.

(I A2K kan du gøre det i Immediate vinduet)
Avatar billede maron Nybegynder
07. september 2002 - 12:57 #15
Okay, nu er jeg stået af, stoppe programmet æhh hvordan det?
Jeg køre win2000 prof.
Avatar billede sjap Praktikant
07. september 2002 - 13:00 #16
Nåh ja der mangler jo også lige et ; til sidst!
Avatar billede sjap Praktikant
07. september 2002 - 13:07 #17
Det er måske ikke relevant længere (se mit svar kl. 13:00:09), men
et program kan stoppes under afvikling ved at placere et såkaldt breakpoint i en (eller flere) linie(r) i programmet. Når programmet når til et breakpoint stopper det, så programmøren kan undersøge f.eks. hvad værdien af strenge er. Efterfølgende kan programmet forsætte fra breakpointet igen (det er ret smart).

Breakpoints placeres enten ved at gå ind på "Toggle breakpoint" i "Debug" menuen eller ved at dobbelklikke med musen i det grå område umiddelbart til venstre for programkoden.
Avatar billede sjap Praktikant
07. september 2002 - 13:11 #18
Jfr. mit svar kl. 13:00:09 skal du bare sætte et ; ind i den sidste linie:

strSQL = strSQL & " OR (navn LIKE '*" & strKeyword & "*');"

Det burde løse problemet :)
Avatar billede nih Novice
07. september 2002 - 19:54 #19
SELECT Trim(Str([id])) AS strId, navn ......

ID skal laves om til streng

Niels
Avatar billede nih Novice
07. september 2002 - 20:01 #20
LIKE gør din søgning langsom, især når man bruger den 2 gange. Jeg plejer at samle felterne, når jeg vil søge i flere felter på en gang:

strSQL = "SELECT [navn],  [id] FROM links WHERE " & _
"([navn] & [id]) LIKE '*" & strKeyword & "*';"

Niels
Avatar billede sjap Praktikant
28. april 2003 - 14:25 #21
maron
Synes du ikke du skulle få gjort noget ved det her spørgsmål - få det kommenteret eller få det lukket?
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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