Avatar billede submitt Nybegynder
13. december 2005 - 13:14 Der er 7 kommentarer og
1 løsning

SQL sætning

Jeg har et søgefelt der sender indholdet af nogle formularfelter til en resultatside. På resultatsiden skal udtrækkes alle de post der svarer til søgningen. Problemet er at min SQL-sætning siger at ALLE felter skal være identiske med felterne i databasen - og da det skal være muligt på søgesiden at lade nogle felter stå tomme, duer det jo ikke.

Min SQL-sætning ser således ud:

SELECT *
FROM tblIncidentLog
WHERE incidentDate LIKE #irDate# AND incidentNo LIKE irNumber AND incidentTime LIKE #irTime# AND InitRptBy LIKE 'irName' AND OffRptBy LIKE 'irOffice'  AND IncidentReported LIKE '%irDetails%' AND MonthlyRepType LIKE 'irCategory' AND Status LIKE 'irStatus'

Som man sagde ved Falck: Hurtig hjælp er dobbelt hjælp! :-)
Avatar billede dr_chaos Nybegynder
13. december 2005 - 13:16 #1
prøv med

SELECT *
FROM tblIncidentLog
WHERE incidentDate LIKE #irDate# Or incidentNo LIKE irNumber Or incidentTime LIKE #irTime# Or InitRptBy LIKE 'irName' Or OffRptBy LIKE 'irOffice'  Or IncidentReported LIKE '%irDetails%' Or MonthlyRepType LIKE 'irCategory' Or Status LIKE 'irStatus'
Avatar billede showsource Seniormester
13. december 2005 - 13:17 #2
eller lav et tjek på at feltet IKKE er "tom luft", og brug så udfyldte felter.
Avatar billede submitt Nybegynder
13. december 2005 - 13:19 #3
Såvidt jeg kan se har du bare udskiftet AND med OR hele vejen igennem. Det bevirker at der findes poster hvor datoen findes i databasen ELLER kategorien findes i databasen. Det skal være sådan at den f.eks. finder alle datoer der har en bestemt kategori. Altså begge kriterier skal være opfyldt.
Avatar billede fennec Nybegynder
13. december 2005 - 13:24 #4
Du skal opbygge din sql-sætning dynamisk:

sql = "SELECT * FROM tblIncidentLog WHERE 1=1 "
if request.form("dato") <> "" then
  sql = sql & " and incidentDate=#"& request.form("dato") &"#"
end if
if request.form("irOffice") <> ""
  sql = sql & " and OffRptBy='"& request.form("irOffice") &"'"
end if
...
set rs = conn.execute(sql)
Avatar billede submitt Nybegynder
13. december 2005 - 13:28 #5
Hej Fennec

Det lyder som om du er inde på noget af det rigtige .... kan du fuldføre sætningen for mig??
Avatar billede fennec Nybegynder
13. december 2005 - 13:42 #6
ikke uden at kende alle dine formfelter :o)

Du skal bare lave en if-sætning for hver formfelt du har, også udvide sql-sætningen med den tilhørende betingelse, hvis feltet indeholder data.
Avatar billede submitt Nybegynder
13. december 2005 - 13:53 #7
Fennec - du er fantastisk. Det virker! Glem mit sidste spørgsmål - det var dumt!
Send mig et svar og du får straks dine point! :-)))
Avatar billede fennec Nybegynder
13. december 2005 - 14:06 #8
.o) <-- One Eyed Jack
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