Avatar billede mvk Nybegynder
15. august 2005 - 16:07 Der er 10 kommentarer og
1 løsning

Form med søgefunktion fejler

Nedenstående SQL virker ikke. Jeg har en form med 4 søgefelter men når jeg loader siden og alle felterne i princippet er tomme kommer der ikke noget resultat - her burde den vise alle posterne fra tabellen.
Det virker hvis jeg fjerner alt på nær IDclaim og DateOfDamage så det må være i name og/eller registrationno at fejlen opstår. Jeg kan bare ikke gennemskue hvor fejlen er.


"SELECT *  FROM dbo.tblClaims  WHERE (IDclaim LIKE '%" & Request.Form("claim") & "%') AND (DateOfDamage = '" & ConvertToSqlDate(Request.Form("dateofdamage")) & "') AND (cDriverName LIKE '" + Request.Form("name") + "' OR cOwnerName LIKE '" + Request.Form("name") + "' OR iDriverName LIKE '" + Request.Form("name") + "' OR iOwnerName LIKE '" + Request.Form("name") + "') AND (cRegistrationno LIKE '" + Request.Form("registrationno") + "' OR iRegistrationno LIKE '" + Request.Form("registrationno") + "')"
Avatar billede busschou Praktikant
15. august 2005 - 16:12 #1
det kan jo skyldes at der går kuk i din Like, for hvad er
Like ''
Jeg plejer selv at lave en sql hvis feltet er udfyldt og en anden hvis det ikke er
Hvis det ikke er udfyldt så undlader du blot din like
Avatar billede busschou Praktikant
15. august 2005 - 16:17 #2
jeg ved ikke om din claim også er tom, men det kan være den går godt fordi det så bliver Like '%%' hvilket måske så matcher alt, men Like '' matcher ingenting og i og med du bruger And så kræves der mindst et match
--
Så jeg vil foreslå dig at bygge din sql dynamisk op ala
if request.form("name") <> "" then
  sql = sql & "and like blabla"
else
  sql = noget andet
end if
hvis du kan se pointen ;o)
Avatar billede mvk Nybegynder
16. august 2005 - 07:39 #3
SQL = "SELECT *  FROM dbo.tblClaims  WHERE (IDclaim LIKE '%" & Request.Form("claim") & "%')"
If Request.Form("dateofdamage")<>"" Then
SQL = SQL & " AND (DateOfDamage = '" & ConvertToSqlDate(Request.Form("dateofdamage")) & "')"
If Request.Form("name")<>"" Then
SQL = SQL & " AND (cDriverName LIKE '" + Request.Form("name") + "' OR cOwnerName LIKE '" + Request.Form("name") + "' OR iDriverName LIKE '" + Request.Form("name") + "' OR iOwnerName LIKE '" + Request.Form("name") + "')"
If Request.Form("registrationno")<>"" Then
SQL = SQL & " AND (cRegistrationno LIKE '" + Request.Form("registrationno") + "' OR iRegistrationno LIKE '" + Request.Form("registrationno") + "')"
SQL = SQL & " ORDER BY IDclaim ASC"
End if
End if
End if
Avatar billede mvk Nybegynder
16. august 2005 - 07:41 #4
er det noget i den retning du mener ?
Avatar billede busschou Praktikant
16. august 2005 - 07:47 #5
ja noget i den dur :o)
Avatar billede mvk Nybegynder
16. august 2005 - 07:57 #6
okay. tak. prøver at implementere senere (ved 12 tiden). skriver lige når det spiller.
Avatar billede busschou Praktikant
16. august 2005 - 07:59 #7
ok det håber jeg du får det til, jeg tager på ferie ugen ud om en time såå :o/ hehe,
Men håber du får det til at spille :o)
Avatar billede rafix Nybegynder
16. august 2005 - 08:08 #8
hehe ok. god fornøjelse
smid et svar så får du point inden ferien
Avatar billede mvk Nybegynder
16. august 2005 - 08:10 #9
stener - så havde min kollega ikke logget af inden jeg skrev ... hehe
med smid et svar så sender jeg point :)
Avatar billede busschou Praktikant
16. august 2005 - 08:12 #10
hmm oki doki, jamen det gør jeg da så, så må du råbe højt hvis det ikke skulle gøre det :o)
Avatar billede mvk Nybegynder
16. august 2005 - 08:18 #11
will do. tak igen!
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