Avatar billede mickill Nybegynder
25. juni 2003 - 10:04 Der er 15 kommentarer og
1 løsning

Syntaxfejl i WHERE-delsætning

Hejsa

Jeg får en syntax fejl i WHERE-delsætning:

Set rs = server.createobject("adodb.recordset")

WhereClause = "Where "

If strFirma <> "" Then
  WhereClause = WhereClause & "Firma LIKE '%" & strFirma & "%' AND "
End If

If strKategori <> "" Then
  WhereClause = WhereClause & "Opdeling LIKE '%" & strKategori & "%' AND "
End If

If strPostnr <> "" Then
  WhereClause = WhereClause & "Postnr LIKE '%" & strPostnr & "%' AND "
End If

If strKontaktperson <> "" Then
  WhereClause = WhereClause & "Kontaktperson LIKE '%" & strKontaktperson & "%' AND "
End If

If strBynavn <> "" Then
  WhereClause = WhereClause & "Bynavn LIKE '%" & strBynavn & "%' AND "
End If

If strBlacklist <> "" Then
  WhereClause = WhereClause & "Blacklist LIKE '%" & strBlacklist & "%' AND "
End If

If strRegistrering <> "" Then
  WhereClause = WhereClause & "Registrering LIKE '%" & strRegistrering & "%' AND "
End If

If Right(WhereClause,4) = "AND " Then
  WhereClause = Left(WhereClause, Len(WhereClause) -4)
End If

strSQL = "SELECT * FROM T_Kontakter " & WhereClause & " order by Firma"

rs.open strSQL, conn, 1, 3
Avatar billede gitrian Nybegynder
25. juni 2003 - 10:06 #1
Prøv at udskrive strQSL, så kan man som regel se hvad der er galt
Avatar billede -mundi- Nybegynder
25. juni 2003 - 10:06 #2
lav en

response.write strSQL
response.end

rs.open strSQL, conn, 1, 3

og så post din SQL
Avatar billede jpvj Nybegynder
25. juni 2003 - 10:07 #3
Kan du ikke lige få smidt din strSQL ud på skærmen og poste den her?
Avatar billede mickill Nybegynder
25. juni 2003 - 10:13 #4
Okay:

SELECT * FROM T_Kontakter Where Postnr LIKE '%2650%' order by Firma
Avatar billede -mundi- Nybegynder
25. juni 2003 - 10:14 #5
er postnummer et talfelt ?
Avatar billede -mundi- Nybegynder
25. juni 2003 - 10:15 #6
hvis det er et talfelt skal der stå :
SELECT * FROM T_Kontakter Where Postnr = 2650 order by Firma
Avatar billede mickill Nybegynder
25. juni 2003 - 10:15 #7
Min fejl. Det er ikke den strSQL den er gal med.
Jeg har lavet en paging på siden, og det er når man klikker på et af side-tallene at syntax fejlen kommer:

SELECT * FROM T_Kontakter Where order by Firma
Avatar billede -mundi- Nybegynder
25. juni 2003 - 10:17 #8
ah, det er fordi du ikke overfører søgekriterierne til den næste side i paging'en, du kunne f.eks gemme din SQL i en session variabel
Avatar billede mickill Nybegynder
25. juni 2003 - 10:21 #9
Okay jeg prøver
Avatar billede mickill Nybegynder
25. juni 2003 - 10:41 #10
okay, nu får jeg en anden fejl:

Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.

Jeg forsøger således:

if paging = "True" then
response.write Session("sql")
else
strSQL = "SELECT * FROM T_Kontakter " & WhereClause & " order by Firma"
end if
rs.open strSQL, conn, 1, 3
Session("sql") = strSQL
Avatar billede -mundi- Nybegynder
25. juni 2003 - 10:46 #11
den fejlmeddelelse lyder mere som en asp fejlmeddelelse ... får du ikke et linienummer hvor fejlen er ?
Avatar billede mickill Nybegynder
25. juni 2003 - 10:47 #12
jo det er linien:

rs.open strSQL, conn, 1, 3
Avatar billede -mundi- Nybegynder
25. juni 2003 - 10:49 #13
if paging = "True" then
response.write Session("sql")
else
strSQL = "SELECT * FROM T_Kontakter " & WhereClause & " order by Firma"
rs.open strSQL, conn, 1, 3
Session("sql") = strSQL
end if

prøv sådan her
Avatar billede mickill Nybegynder
25. juni 2003 - 10:54 #14
Det hjalp ikke. Fik en fejl ".....objekt lukket."

så jeg lavede det om til:
if paging = "True" then
response.write Session("sql")
rs.open strSQL, conn, 1, 3
else
strSQL = "SELECT * FROM T_Kontakter " & WhereClause & " order by Firma"
rs.open strSQL, conn, 1, 3
Session("sql") = strSQL
end if

og fik så den samme fejl:  "Argumenterne har en forkert type......"
Avatar billede -mundi- Nybegynder
25. juni 2003 - 10:55 #15
if paging = "True" then
  rs.open Session("sql"), conn, 1, 3
else
  strSQL = "SELECT * FROM T_Kontakter " & WhereClause & " order by Firma"
  rs.open strSQL, conn, 1, 3
  Session("sql") = strSQL
end if

sorry det var mig det havde misforstået hvad det var du ville :-)
Avatar billede mickill Nybegynder
25. juni 2003 - 10:58 #16
Okay det virker nu. Mange tak for hjælpen.
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