Jag har en möjlighet att kunna ändra kunder i mitt adminsystem, men jag får upp följande meddelande:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ID='.
/uddcomb/admin/andrakunden.asp, line 10
Koden ser ut så här:
<%
id=request.form("id")
set rs=Server.CreateObject("adodb.Recordset")
SET Conn= Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(ritregister))
ssql="SELECT * FROM tbl_Kunder WHERE ID="& id &" ORDER BY kund asc"
rs.open ssql, Conn
%>
rad 10 är:
ssql="SELECT * FROM tbl_Kunder WHERE ID="& id &" ORDER BY kund asc"
[red]
<%
id=request.form("id")
set rs=Server.CreateObject("adodb.Recordset")
SET Conn= Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(ritregister))
ssql="SELECT * FROM tbl_Kunder WHERE ID="& id &" ORDER BY kund asc"
Response.Write ssql
Response.End
rs.open ssql, Conn
%>
[/red]
Nu är det så att jag inte är så överdrivet kunnig på ASP & SQl.
Det är så här: Jag har ett formulär innan som jag väljer vilken kund som jag ändra, selectmenyn heter kund!, sen så är tanken att
kunden ska skrivas ut mha dess ID i ett annat fält i ett annat formulär. Det är det som är problemet! Nu visas iallafall fältet. I fältet står det <font face istället för kundens namn och dels står följande felmedelande:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
[red]
<%
id=request.form("id")
set rs=Server.CreateObject("adodb.Recordset")
SET Conn= Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(ritregister))
ssql="SELECT * FROM tbl_Kunder WHERE ID="& id &" ORDER BY kund asc"
[b]Response.Write ssql
Response.End[/b]
rs.open ssql, Conn
%>
[/red]
I så fall måste du skriva id = request.form("kund"), eftersom request.form-funktionen går efter fältnamnet i formuläret som skickar information till andrakunden.asp.
Så du menar att id = request.form("kund") ska både finnas i det formuläret som man väljer kund som ska ändras samt i det formulär där man ändrar kunden?
På den första sidan har du ett formulär med följande utseende:
<select [b]name="kund"[/b]>
<%do until rs.eof%>
<option value="<%=rs("id")%>"><%=rs("kund")%></option>
<%rs.movenext%>
<%loop%>
</select>
Här har du skapat ett recordset som du sedan loopar fram i en select. Namnet på selecten är kund. När du sedan trycker på Skicka-knappen skickas värdet i kund-selecten vidare som ett formulärobjekt. Detta hämtas upp med request.form("kund"). Det har ingen betydelse vad kolumnerna i tabellen heter (i detta fall "id" och "kund"), utan det är namnet på selecten som spelar roll.
När du sedan hämtat upp värdet från selecten genom
id = request.form("kund")
bör resten funka.
Ett tips är att döpa om namnet på selecten till "kund_id" eller liknande, eftersom det kan bli lite förvirrande när "kund" både återfinns som select-namn och namn på en kolumn i tabellen du hämtar information från.