Hej!
Kört fast, har klurat med denna senaste timmen. :l
Oavsett vad Categori är, så blir id 11, 11 är också den första(översta och lägsta) postens id.
ASP, Access
<%Category=request.form("category")%>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM categories Where category = Category"
RecSet.Open SQL, Databas, 3, 3 %>
<p>
<%id=Recset("id")%>
<p>
<%RecSet.Close
Databas.Close %>
SebbeMedlem sedan jan. 20032 285 inlägg SQL="SELECT * FROM categories Where category = " & Category
???
Hej!
Det hjälpte tyvärr inte:
SQL="SELECT * FROM categories Where category = " & Category
Subcategory Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'category = General Contractors'.
Testade även:
SQL="SELECT * FROM categories Where category = " & "'Category'"
Felmed:
Subcategory
ADODB.Field error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record
PoffeMedlem sedan apr. 20022 743 inlägg SQL="SELECT * FROM categories Where category = '" & Category & "'"
ObbelixMedlem sedan okt. 2002257 inlägg Testa med
SQL="SELECT * FROM categories Where category = '" & Category & "'"
/red
ahh.. lite för långsam...
cyprysMedlem sedan dec. 20003 563 inlägg Det finns ingen post där category = "din variabel category".
Kör detta istället
<%Category=request.form("category")%>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM categories Where category = " & Category
RecSet.Open SQL, Databas, 3, 3
Do until RecSet.eof%>
<p>
<%id=Recset("id")%>
<p>
<%
RecSet.Movenext
Loop
RecSet.Close
Databas.Close %>
r: Är fältet av typen text så stämmer överstående SQL-sats istället.
SebbeMedlem sedan jan. 20032 285 inlägg Om det cyprys skrev inte funkar kan du testa med
<%Category=request.form("category")%>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM categories Where category = '" & Category & "'"
RecSet.Open SQL, Databas, 3, 3
If RecSet.EOF = True Then
Response.Write("Inga poster")
Else
Do Until RecSet.EOF
%>
<p>
<%
id=Recset("id")
RecSet.MoveNext
Loop
End If
RecSet.Close
Databas.Close %>
Det gick bra med det sistnämnda förslaget.
Tack så hemskt mycket.
JosefMedlem sedan mars 20023 561 inlägg Sedan kan man ju med fördel hoppa över alla <% och %>. Använd Response.Write("blabl") istället för att hoppa hela tiden.
T ex:
...
Do until RecSet.EOF
Response.Write("<p>")
id = RecSet("id")
...
Man kan ju även byta ut
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("phone_numbers.mdb")
till
Databas.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("phone_numbers.mdb")