hmm...detta går mig på nerverna... jag vill ju helt enkelt om man valde formuläret "Sök Ort" så visar den dom personer som bor i dom orterna... det funkar ju när man skriver i formuläret ovan "Sök användare" men ett till problem, fyller man inte i ngt i fälten blir det felmes... aja... koden ser ut så här:
formuläret:
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Set rsJa = Server.Createobject("ADODB.Recordset")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
If Request.Form("knapp")="Sök användare" Then
username=Request.Form("username")
ar=Request.Form("ar")
If username <> "" and ar <> "" Then
SQL="SELECT * FROM users WHERE username LIKE '%"&username&"%' AND ar='"&ar&"'"
Set rsJa = databas.execute(SQL)
Else
%>
Du har inte fyllt i alla fält. Gå tillbaka och försök igen.
<% End If %>
<% End If %>
<%
If Request.Form("knapp")="Sök ort" Then
bor=Request.Form("bor")
If bor <> "" Then
SQL = "SELECT * FROM users WHERE bor='"&bor&"'"
Set rsJa = databas.execute(SQL)
Else
Response.Write"Du valde ingen av orterna ju."
End If
%>
<% End If %>
<%
If rsJa.EOF then
Response.Write"Vi hittade inget här."
else
Do Until rsJa.EOF
Response.Write "Förnamn: " & "<b>" & rsJa("Namn") & "<br>" & "</b>"
Response.Write "Efternamn: " & "<b>" & rsJa("Efternamn") & "<br></b>"
Response.Write "Emejl: " & "<b>" & rsJa("E-post") & "<br></b>"
Response.Write "Bor: " & "<b>" & rsJa("Bor") & "<br></b>"
Response.Write "Kön: " & "<b>" & rsJa("Kon") & "<br></B>"
Response.Write "Född: " & "<b>" & rsJa("ar") & rsJa("manad") & rsJa("dag") & "<br></b>"
Response.Write "Så här beskriver jag mig själv:" & "<b>" & "<br>" & rsJa("Fakta") & "<br></b>"
Response.Write "Nickname: " & "<b>" & rsJa("Username") & "<br><br></b>" & "<a href=""blikompis.asp?Username=" & rsJa("Username") & """><span style=""text-decoration:none;"">Bli kompis med " & rsJa("username") &"</a><br>" & "<a href=""skickamess.asp?till=" & rsJa("Username") & """><span style=""text-decoration:none;"">Skicka meddelande</a><br><br>"
Response.Write "<a href=""privatklotterplank.asp?vems=" & rsJa("Username") & """><span style=""text-decoration:none;"">Läs på " & rsJa("username") & "´s klotterplank</a><br>"
Response.Write "<a href=""javascript:na_open_window('nyttinlagg', 'skickaprivat.asp?till=" & rsJa("username") & "', 1, 1, 360, 350, 0, 0, 1, 1, 0);""><span style=""text-decoration:none;"">Skriv på " & rsJa("username") & "´s klotterplank</a></span><br><br>"
rsJa.MoveNext
Loop
%>
<%End If%>
felmess när man inte fyller i ngt av alla fält:
ADODB.Recordset error '800a0e78'
Åtgärden som programmet begärt är inte tillåten om objektet är stängt.
/groda/search2.asp, line 105
och när man väljer en ort blir det så här: (väljer man inget ger den samma felmess som ovan)
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'bor='Göteborg''.
/groda/search2.asp, line 98
line 98:
SQL = "SELECT * FROM users WHERE bor='"&bor&"'"
Set rsJa = databas.execute(SQL)
Åtgärden som programmet begärt är inte tillåten om objektet är stängt
beror på att du kollar på om rsja.eof är satt även om du inte har öppnat recordsetet. Du kan stuva om koden så att man bara skapar recordsetet om det behövs.
<%
If Request.Form("knapp")="Sök användare" Then
username=Request.Form("username")
ar=Request.Form("ar")
If username <> "" and ar <> "" Then
SQL="SELECT * FROM users WHERE username LIKE '%"&username&"%' AND ar='"&ar&"'"
Else
Response.write "Du har inte fyllt i alla fält. Gå tillbaka och försök igen."
response.end
End If
End If
If Request.Form("knapp")="Sök ort" Then
bor=Request.Form("bor")
If bor <> "" Then
SQL = "SELECT * FROM users WHERE bor = '" & bor & "'"
Else
Response.Write"Du valde ingen av orterna ju."
response.end
End If
End If
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ= " & MdbFilePath & ";"
Set rsJa = databas.execute(SQL)
If rsJa.EOF then
Response.Write"Vi hittade inget här."
else
Do Until rsJa.EOF
Response.Write "Förnamn: " & "<b>" & rsJa("Namn") & "<br>" & "</b>"
Response.Write "Efternamn: " & "<b>" & rsJa("Efternamn") & "<br></b>"
Response.Write "Emejl: " & "<b>" & rsJa("E-post") & "<br></b>"
Response.Write "Bor: " & "<b>" & rsJa("Bor") & "<br></b>"
Response.Write "Kön: " & "<b>" & rsJa("Kon") & "<br></B>"
Response.Write "Född: " & "<b>" & rsJa("ar") & rsJa("manad") & rsJa("dag") & "<br></b>"
Response.Write "Så här beskriver jag mig själv:" & "<b>" & "<br>" & rsJa("Fakta") & "<br></b>"
Response.Write "Nickname: " & "<b>" & rsJa("Username") & "<br><br></b>" & "<a href=""blikompis.asp?Username=" & rsJa("Username") & """><span style=""text-decoration:none;"">Bli kompis med " & rsJa("username") &"</a><br>" & "<a href=""skickamess.asp?till=" & rsJa("Username") & """><span style=""text-decoration:none;"">Skicka meddelande</a><br><br>"
Response.Write "<a href=""privatklotterplank.asp?vems=" & rsJa("Username") & """><span style=""text-decoration:none;"">Läs på " & rsJa("username") & "´s klotterplank</a><br>"
Response.Write "<a href=""javascript:na_open_window('nyttinlagg', 'skickaprivat.asp?till=" & rsJa("username") & "', 1, 1, 360, 350, 0, 0, 1, 1, 0);""><span style=""text-decoration:none;"">Skriv på " & rsJa("username") & "´s klotterplank</a></span><br><br>"
rsJa.MoveNext
Loop
End If%>
rsJa.close
databas.close
Det andra felet ser jag inget direkt som kan vara en förklaring. Kan du lägga in en testutskrift på sqlsträngen innan du gör execute?
------------------ essentitia preter non sans multiplicandum
det andra felet har ju också en tendens att dyka upp när man antingen använt reserverade ord i sina fältnamn, eller helt enkelt skrivit fel fältnamn. så därför undrar jag:
heter fältet verkligen bor?
har du provat att klamra i sql-frågan?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
nobody expects the spanish inquisition!</A>