29. november 2014 - 13:07Der er
11 kommentarer og 1 løsning
Fritekst-søgning med SQL, mange felter, Access 2010
Hej Eksperter
Jeg tumler med et problem jeg ikke rigtigt kan dreje.
Jeg en formular med en ubunden tekstboks, og en liste, samt en kommandoknap. jeg skriver et eller andet i tekstboksen, og klikker på knappen, og nedenstående kode køres:
'kode start' Dim SQLfind As String
SQLfind = "Select * From QRYfindmedaljer where [Navn]&[Kaldenavn]&[Regent]&[Indstiftet år]&[Stempel nr - Avers]&[Stempel nr - Revers]&[Beskrivelse - Avers]&[Beskrivelse - Revers] Like '*" & Me!txtfind & "*'"
Me!Liste21.RowSource = SQLfind 'kode slut'
Listen på formen viser nu de poster hvor der indgår noget tekst der svarer til det der er indtastet i tekstboksen Me!txtfind. Det virker fint.
Problem: Jeg skal fritekst-søge i hele 34 felter i forespørgslen "QRYmedaljer" hvilket gør ovenstående kode temmelig uoverskuelig. Kan det gøres på en anden måde? Eller kan man lave lineskift i ovenstående kode så koden bliver mere overskuelig at læse? Jeg har søgt her på eksperten, og via Google, men finder ikke rigtigt noget brugbart. Nogen der har en ide :-)
Det virker ikke. Hvis jeg skriver nedenstående kode fejler det ikke, men der returneres ikke nogen poster til listen hvis jeg i mit søgefelt txtfind skriver Emil. Jeg ved der findes 2 poster hvor der fx i feltet navn står Emil.
Dim sSQL As String
sSQL = "Select * From QRYfindmedaljer Where [Navn]" & _
"[Kaldenavn]" & _
"[Regent] Like '*" & Me!txtfind & "*'"
Me!Liste21.RowSource = sSQL
Hvis jeg skriver koden som nedenstående, altså i en lang række virker det.
Dim sSQL As String
sSQL = "Select * From QRYfindmedaljer Where [Navn]&[Kaldenavn]&[Regent] Like '*" & Me!txtfind & "*'"
Me!Liste21.RowSource = sSQL
Som skrevet tidligere skal der defineres 34 felter, så en lang række er ikke særlig læse venligt. Gad vide om der måske var en helt anden måde at gøre det på :-)
Hilsen Anders.
Synes godt om
Slettet bruger
02. december 2014 - 19:19#6
I det tilfaelde skal du ogsaa have & indenfor: "[DitFelt]&" & _ Osv..
Synes godt om
Slettet bruger
02. december 2014 - 19:23#7
Du kan ogsaa lave en forespoergsel, som indeholder en kolonne med alle dine felter i og have en where clause som peger paa dit felt i formularen.
tak for indlægget jeg prøver 02. december 2014 kl. 19:19:09 af. Jeg har prøvet det med feltet i forespørgslen, og det virker fint, men jeg syntes at VBA koden er mere "elegant" :-)
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.