|
| Sammensatte felter i SQL Fra : Allan Jensen |
Dato : 27-05-01 21:43 |
|
Skulle jeg ikke kunne søge i et sammensat felt såsom her:
SELECT *, [Firstname] & ' ' & [Lastname] & ' ' & [Location] & ' ' &
[ICQ] & ' ' & [e-mail] AS AllFields FROM People WHERE ((AllFields LIKE
'%" & searchkeywordSQL & "%') OR (Lastname LIKE '%" & searchkeywordSQL
& "%')
Jeg kan godt skrive feltet AllFields til skærmen, men så snart jeg
sætter det ind i WHERE-clausen siger den: "Too few parameters.
Expected 1." Det synes jeg er underligt....
| |
Jørn Andersen (27-05-2001)
| Kommentar Fra : Jørn Andersen |
Dato : 27-05-01 22:46 |
|
On Sun, 27 May 2001 22:43:15 +0200, Allan Jensen <public@hverdag.dk>
wrote:
>Skulle jeg ikke kunne søge i et sammensat felt såsom her:
>
>SELECT *, [Firstname] & ' ' & [Lastname] & ' ' & [Location] & ' ' &
>[ICQ] & ' ' & [e-mail] AS AllFields FROM People WHERE ((AllFields LIKE
>'%" & searchkeywordSQL & "%') OR (Lastname LIKE '%" & searchkeywordSQL
>& "%')
>Jeg kan godt skrive feltet AllFields til skærmen, men så snart jeg
>sætter det ind i WHERE-clausen siger den: "Too few parameters.
>Expected 1." Det synes jeg er underligt....
Jeg prøvede at opbygge den i Access 97, men den insisterer på at
gentage hele strengen i stedet for AllFields i WHERE-clausen.
Men måske det kan lade sig gøre med andre programmer?
En anden ting: Der er vel ingen grund til at teste på Lastname, når
den allerede er inkluderet i første del af WHERE-clausen?
Good luck,
Jørn
--
Jørn Andersen
Brønshøj
| |
Allan Jensen (28-05-2001)
| Kommentar Fra : Allan Jensen |
Dato : 28-05-01 10:16 |
|
>>Skulle jeg ikke kunne søge i et sammensat felt såsom her:
>>
>>SELECT *, [Firstname] & ' ' & [Lastname] & ' ' & [Location] & ' ' &
>>[ICQ] & ' ' & [e-mail] AS AllFields FROM People WHERE ((AllFields LIKE
>>'%" & searchkeywordSQL & "%') OR (Lastname LIKE '%" & searchkeywordSQL
>>& "%')
>
>>Jeg kan godt skrive feltet AllFields til skærmen, men så snart jeg
>>sætter det ind i WHERE-clausen siger den: "Too few parameters.
>>Expected 1." Det synes jeg er underligt....
>
>Jeg prøvede at opbygge den i Access 97, men den insisterer på at
>gentage hele strengen i stedet for AllFields i WHERE-clausen.
Hallo - du er jo genial! Det virker når jeg skriver hele strengen i
WHERE. Det havde jeg ikke lige tænkt på...
>Men måske det kan lade sig gøre med andre programmer?
Det burde kunne lade sig gøre på den anden måde også, men det er nu
lige meget når bare det virker på denne.
>En anden ting: Der er vel ingen grund til at teste på Lastname, når
>den allerede er inkluderet i første del af WHERE-clausen?
Jo fordi..... nææhhh det har du egentlig ret i! Og jeg har endda
seperat søgning på flere felter, men det er der jo ingen grund til!
Cool tak!
| |
Peter Lykkegaard (28-05-2001)
| Kommentar Fra : Peter Lykkegaard |
Dato : 28-05-01 13:41 |
|
"Allan Jensen" <public@hverdag.dk> wrote in message
news:fc54ht83vdr3u1hht84g1h2ek78266imsn@4ax.com...
> >Men måske det kan lade sig gøre med andre programmer?
>
> Det burde kunne lade sig gøre på den anden måde også, men det er nu
> lige meget når bare det virker på denne.
Ikke i MSAccess
Det ville virke fint på MSSQL
Hvis du vil lave det i Access, så kunne du lave en forespørgsel/query først
og så bruge denne til din søgning
Syntaks mv er den samme mht din Select statement
ex SELECT * FROM qryPeople WHERE AllFields LIKE '%" & searchkeywordSQL &
"%')
Hvor qryPeople er en forespørgsel lavet/gemt i din MSAccess DB
Vær opmærksom på at der vil blive lavet tablescan ved søgninger af denne
konstruktion
Læs: Det er ikke den hurtigste søgning
Jeg har dog ikkke lige et bud på hvordan man kan lave det anderledes i
MSAccess
mvh/Peter Lykkegaard
| |
|
|