Avatar billede jnissen Nybegynder
18. august 2001 - 20:48 Der er 12 kommentarer og
1 løsning

Søgning i access

Hej

Jeg skal ha\' lavet et søge script, hvor man kan afkrydse nogle afkrydsningsfelter, for hvilke kolonner i databasen der skal søge i.

Fx. hvis \"navn\" er krydset af, skal der søges i kolonnen ”navn”.

Lige nu bruger jeg denne kode, men den søger jo i alle tabeller.
Er der nogen der vil hjælpe med at kode det om??

strSQL = \"SELECT ID, fra, til, bilagsnr, dato, kontonr, afd, emne, soegeord FROM bilag WHERE\"
strSQL = strSQL & \" (fra LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (til LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (bilagsnr LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (dato LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (kontonr LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (afd LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (emne LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (soegeord LIKE \'%\" & strKeyword & \"%\')\"


Mvh. Jacob
Avatar billede suha Juniormester
18. august 2001 - 21:04 #1
Der findes en meget enkelt søgemåde i Acces. Først laver du din tabel - gemmer. Når du skal søge, opretter du en forespørgsmål (samme princip som når du opretter en tabel). Når du klikker på \"opret forespørgsmål\" skal du markere den tabel, du vil oprette forespørgslen til. Herefter kommer alle dine kolonner i den markerede tabel frem og du kan krydse de kolonner af, som du vil have med.
Avatar billede jnissen Nybegynder
18. august 2001 - 21:08 #2
suha  - det er ikke i access jeg vil søge.
Jeg vil søge i databasen, men p åmin hjemmeside med asp.
Men ellers tak :-)
Avatar billede jnissen Nybegynder
18. august 2001 - 21:08 #3
suha  - det er ikke i access jeg vil søge.
Jeg vil søge i databasen, men p åmin hjemmeside med asp.
Men ellers tak :-)
Avatar billede jnissen Nybegynder
18. august 2001 - 21:09 #4
Ubs - det var sku ikke med vilje :-)
Undskyld....
Avatar billede proaccess Nybegynder
19. august 2001 - 08:51 #5
Du skal bruge noget i retning af:

StrSQL=\"\"
If AfkrydsFra=True Then
  strSQL = strSQL & \" OR (fra LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If AfkrydsTil=True Then
  strSQL = strSQL & \" OR (til LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If AfkrydsBilagsnr=True Then
  strSQL = strSQL & \" OR (bilagsnr LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If AfkrydsDato=True Then
  strSQL = strSQL & \" OR (dato LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If AfkrydsKontonr=True Then
  strSQL = strSQL & \" OR (kontonr LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If AfkrydsAfd=True Then
  strSQL = strSQL & \" OR (afd LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If AfkrydsEmne=True Then
  strSQL = strSQL & \" OR (emne LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If AfkrydsSoegeord=True Then
  strSQL = strSQL & \" OR (soegeord LIKE \'%\" & strKeyword & \"%\')\"
EndIf
If strSQL<>\"\" Then
  strSQL=\" WHERE\" & Mid(strSQL,3)
EndIf
strSQL = \"SELECT ID, fra, til, bilagsnr, dato, kontonr, afd, emne, soegeord FROM bilag\" & strSQL



Avatar billede proaccess Nybegynder
21. august 2001 - 21:02 #6
Hej Jacob, fik du kigget på mit svar, og kunne du bruge det til noget...?
Avatar billede jnissen Nybegynder
21. august 2001 - 21:14 #7
Hej proaccess

Jeg beklager meget at jeg ikke har svaret endnu, men jeg har været travlt optaget, og har haft andre ting at tænke på.

Men nej, det virker ikke helt.
Den kommer med denne fejl:

En sætning var ventet
/kifbilag/avanceret-resultat.asp, line 42
EndIf

--din kode--
StrSQL=\"\"
If AfkrydsFra=True Then
  strSQL = strSQL & \" OR (fra LIKE \'%\" & strKeyword & \"%\')\"
EndIf -------- Dette er linje 42
If AfkrydsTil=True Then
  strSQL = strSQL & \" OR (til LIKE \'%\" & strKeyword & \"%\')\"
EndIf..........
---slut----

Hvorfor gør den det, og skal man ikke gøre andet ind at indsætte din kode??

Avatar billede proaccess Nybegynder
21. august 2001 - 21:24 #8
Det må være syntaxen i ASP, som jeg ikke har taget højde for... Jeg gik mere efter logikken i opbygningen af din samlede SQL-String.

Prøv så med:

StrSQL=\"\"
If AfkrydsFra=True Then strSQL = strSQL & \" OR (fra LIKE \'%\" & strKeyword & \"%\')\"
If AfkrydsTil=True Then strSQL = strSQL & \" OR (til LIKE \'%\" & strKeyword & \"%\')\"
If AfkrydsBilagsnr=True Then strSQL = strSQL & \" OR (bilagsnr LIKE \'%\" & strKeyword & \"%\')\"
If AfkrydsDato=True Then strSQL = strSQL & \" OR (dato LIKE \'%\" & strKeyword & \"%\')\"
If AfkrydsKontonr=True Then strSQL = strSQL & \" OR (kontonr LIKE \'%\" & strKeyword & \"%\')\"
If AfkrydsAfd=True Then strSQL = strSQL & \" OR (afd LIKE \'%\" & strKeyword & \"%\')\"
If AfkrydsEmne=True Then strSQL = strSQL & \" OR (emne LIKE \'%\" & strKeyword & \"%\')\"
If AfkrydsSoegeord=True Then strSQL = strSQL & \" OR (soegeord LIKE \'%\" & strKeyword & \"%\')\"
If strSQL<>\"\" Then strSQL=\" WHERE\" & Mid(strSQL,3)
strSQL = \"SELECT ID, fra, til, bilagsnr, dato, kontonr, afd, emne, soegeord FROM bilag\" & strSQL






Avatar billede proaccess Nybegynder
21. august 2001 - 21:25 #9
Du skal selvfølgelig skifte mine AfkrydsXXX med dine egne afkrydsningsfelters navne !!!
Avatar billede jnissen Nybegynder
21. august 2001 - 21:29 #10
Nu får jeg ingen fejl, men jeg får vist alle poster fra databasen. Altså ikke kun dem jeg har søgt på??
Avatar billede proaccess Nybegynder
22. august 2001 - 08:15 #11
Du skal lige finde ud af, hvordan du henter værdien fra dine afkrydsningsfelter... Det er ASP-syntax, som jeg desværre ikke er så godt inde i.

Selve opbygningen af din SQL-string er der intet i vejen med.

Det vil sige, der er et eller andet med at den ikke får \"fat i\" værdien af afkrydsningsfeltet ved bare at skrive AfkrydsFra=True...
Avatar billede jnissen Nybegynder
22. august 2001 - 13:48 #12
Okay - jeg ser om jeg så ikke kan finde ud af et eller andet. Tak for din hjælp. Du får alligevel de 100 point, selvom vi ikke fik det helt til at virke:-)
Avatar billede proaccess Nybegynder
22. august 2001 - 13:52 #13
Takker - og held og lykke...
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