20. april 2003 - 20:09Der er
5 kommentarer og 1 løsning
Kombineret checkboks og fritekst søgning ?
Hej - Jeg sidder og bakser med en søgefunktion til gårde - Data ligger i en Access database og skal tilgåes fra en asp-webside hvor brugeren skal kunne :
1) foretage en fritekst søgning på en række felter (navn, adresse, by, tlf etc.)
2) Samtidig skal brugeren også kunne indsnævre sin søgning og sige at vedkomende KUN vil have gårde med i søgningen der har bestemte typer produktion (Kød, Korn, Grøntsager etc.) - det gøres med checkbokse fordi felterne er indsat i Access med checkbokse - Jeg har lavet unchecked værdien "%" og checked værdien "-1" i formen på websiden.
Nu kommer problemet : Jeg vil gerne kunne kombinere fritekstsøgningen med emnesøgningen - Men det giver mig nogle gevaldigt lange SQL sætninger á lá :
SELECT * From t_stamdata WHERE EjerNavn LIKE 'fritekst' AND Tilmeldt LIKE 'tilmelding' AND Koed LIKE 'koed' AND .... Og så fremdeles for ca. 15 parametre som så skal gentages igen ved næste fritekstfelt ... Og så slog det mig - der må være en smartere måde :
Kan man lave en select case eller lignende udfra hvilke felter der er checked, som så strikker en dynamisk SQL sætning sammen, eller hvodden skal den skæres ?
Ja, det var i al sin besvæ .. enkelthed bare det !
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
check på om felter er udfyldt. Opbyg din søgestreng så den kun indeholder de felter der bliver søgt på
if fritekst<>"" then if strSQL<>"" then strSQL = strSQL & " AND (EjerNavn LIKE '%" & fritekst & "%')" else strSQL = " (EjerNavn LIKE '%" & fritekst & "%')" end if end if
if tilmelding<>"" then if strSQL<>"" then strSQL = strSQL & " AND (Tilmeldt LIKE '%" & tilmelding & "%')" else strSQL = " (Tilmeldt LIKE '%" & tilmelding & "%')" end if end if
osv.
strSQL = "SELECT * From t_stamdata WHERE" & strSQL
Tak - Nu gik det op for mig - men hvis "SELECT * From t_stamdata WHERE" er med i strSQL vil den jo aldrig fremstå tom ?
Er det OK at lave if sætningen således : if strSQL <> "SELECT * From t_stamdata WHERE" then osv .... ?
Synes godt om
Ny brugerNybegynder
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.