Jag kan inte... =( printa ut sqlsatsen (med response.write) och kör den direkt i db, du får bättre felmeddelande då Tackar för era svar... Några saker, du jämför dels med checked och dels med "checked" i denna kod.Kan någon klura ut felet...?
<code>
<% Response.Buffer = True %>
<!-- #include file="adovbs.inc" -->
<html>
<head>
<link rel="stylesheet" href="forumStyles.css" type="text/css">
<script language="JAVAScript" src="IEenv.js"></script>
</head>
<body onSelectStart="return false" onDragStart="return false" onContextMenu="return false">
<%
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("forum.mdb")
sokOrd = Request.Form("sokord")
komma = ""
If Request.Form("soktyp1") = Checked Then
sokHur = "Inlagg"
komma = ", "
End If
If Request.Form("soktyp2") = "Checked" Then
sokHur = sokHur & komma & "Rubrik"
komma = ", "
End If
If Request.Form("soktyp3") = Checked Then
sokHur = sokHur & komma & "Namn"
End If
If Request.Form("vilket") = "Allmänt forum" Then
sokVar = "forum"
ElseIf Request.Form("vilket") = "Webbutveckling" Then
sokVar = "webb"
Else
sokVar = "webb, forum"
End If
SQL = "SELECT * FROM " & sokVar & " WHERE " & sokHur & " LIKE '%" & sokOrd & "%' ORDER BY DATUM DESC"
RecSet.Open SQL, Conn, 3, 1
Response.Write "<table cellspacing=0 cellpadding=0 border=0>" & vbCrLf
If RecSet.EOF Then
Response.Write "<tr><td><i>Inga matchande resultat hittades...</i>"
Else
Do While Not RecSet.EOF
farg = farg + 1
If farg Mod 2 = 0 Then
bgColor = ""
Else
bgColor = " bgColor=""#a3a3a3"""
End If
Response.Write "<tr" & bgColor & "><td width=60> Öppna</td>" _
& "<td width=220>" & RecSet("Rubrik") & "</td>" _
& "<td width=200>" & RecSet("Namn") & "</td>" _
& "<td width=100>" & FormatDateTime(RecSet("Datum"),2) & "</td>" _
& "<td width=20>" & RecSet("Svar") & vbCrLf
RecSet.MoveNext
Loop
End If
Response.Write "</td></tr></table>"
RecSet.Close
Set RecSet = nothing
Conn.Close
%>
</body>
</html>
</code>
Detta är felmeddelandet:
"Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'LIKE '%Jako%''.
/forum4/sok.asp, line 45 "
HJÄLP!!!Sv: Kan någon klura ut felet...?
Sv: Kan någon klura ut felet...?
Ja, det där brukar ju funka... men inte nu...
Ska testa att Johans idé nu... =)
Ha're så länge..Sv: Kan någon klura ut felet...?
If Request.Form("soktyp1") = Checked Then
sokHur = "Inlagg"
komma = ", "
End If
If Request.Form("soktyp2") = "Checked" Then
sokHur = sokHur & komma & "Rubrik"
komma = ", "
End If
If Request.Form("soktyp3") = Checked Then
sokHur = sokHur & komma & "Namn"
End If
Din logik för att bygga frågan är felaktig. Om t.ex. både soktyp1 och soktyp2 är ifyllda så kommer sokhur att bi
Inlagg,rubrik och din sql-sats blir
select * from forum where Inlagg,rubrik like '%fetur%'
Du måste bygga den som
select * from forum where inlagg like '%fetur%' or rubrik like '%fetur%'
Du kan alltid lägga till en kontrollutskrift (med response.write) av din sträng så att du ser den färdiga sql-satsen