webForumDet fria alternativet

Felsökning

ASPur ASP

23 svar · 412 visningar · startad av Dflex

Medlem sedan juni 2002136 inlägg
Frågan#1

Tjena!

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"

Ligger problemet här tros?

från:
Fundersam Dflex

Medlem sedan okt. 20005 273 inlägg
#2

Vad ger denna

[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]
Medlem sedan juni 2002136 inlägg
#3

Den ger samma fel tyvärr...

Medlem sedan mars 2001484 inlägg
#4

Testa att göra en Response.Write id efter id=request.form("id"). Det verkar (återigen) som om det inte skickats med något värde från föregående sida.

Är du säker på att formuläret på föregående sida har ett fält som heter id?

Medlem sedan juli 2001203 inlägg
#5

klart det blir samma fel... men ta bort

rs.open ssql, Conn

och kolla hur sql-strängen ser ut... posta den gärna här sen så kan vi nog se vad som är fel...

Medlem sedan juni 2002136 inlägg
#6

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.

/uddcomb/admin/andrakunden.asp, line 28

Medlem sedan okt. 20005 273 inlägg
#7

icaaq skrev:

Vad ger denna

[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]

Vad ger denna ;)

Medlem sedan mars 2001484 inlägg
#8

Är det i selectmenyn "kund" som du listar ID-värden? Nånting liknande det här?

<select name="kund">
<option value="1">Kund 1</option>
<option value="2">Kund 2</option>
...
</select>

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.

Medlem sedan juni 2002136 inlägg
#9

När jag använde iccaq:s kod fick jag följande svar:

SELECT * FROM tbl_Kunder WHERE ID= ORDER BY kund asc

-----------------------------------------------------------------------------------
(JepsO)

Ja, en sådan selectmeny är det som jag använder. Jag har testat ditt förslag också men tyvärr med samma resultat!

Medlem sedan mars 20015 287 inlägg
#10

Med andra ord får du inte med dig datan från formuläret.

Hur ser formuläret ut?

Medlem sedan juni 2002136 inlägg
#11

En rubrik och en selectmeny enbart!

Medlem sedan juli 2001203 inlägg
#12

kan du visa koden??

Medlem sedan juni 2002136 inlägg
#13

<table width="700" border="0" cellspacing="0" cellpadding="0">

<tr>
<td><p>Välj den kund du vill ändra</p></td>
</tr>
<tr><td><br></td></tr>
<tr>
<td width="33%">
<select name="kund">
<%do until rs.eof%>
<option value="<%=rs("id")%>"><%=rs("kund")%></option>
<%rs.movenext%>
<%loop%>
</select></td>
</tr>

<tr>
<td>
<p><br>         
<input type="submit" name="Submit" value="Ändra">
</p>
</td>
</tr>

</table>

Medlem sedan juli 2001203 inlägg
#14

ok... har du testat att skriva

id = request.form("kund")

precis som JepsO skrev...

det borde funka...

Medlem sedan juni 2002136 inlägg
#15

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?

Medlem sedan mars 2001484 inlägg
#16

Okej, vi tar det från början.

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.

Medlem sedan juni 2002136 inlägg
#17

Ursäkta att jag är tjatig, men nu börjar det liknar något.

Formuläret ser bra ut. Det enda är att jag inte får ut någon kund i fältet. Jag har skrivit så här:

<input type="text" name="kund" size="15" VALUE="<%=Kund%>">

Om du orkar...vad innebär följande?:

<INPUT TYPE="hidden" NAME="id" VALUE="<%=ID%>"

Medlem sedan mars 20015 287 inlägg
#18

Du sätter Id-värdet i ett dolt fält med namnet id, dock har du glömt en slutmoj på den raden:

>

Var har du raden som du visar innan, med Kund?

<input type="text" name="kund" size="15" VALUE="<%=Kund%>">

Medlem sedan juli 2001203 inlägg
#19

ger du variabeln Kund något värde??

T.ex.

Kund = rs("kund")
Medlem sedan juli 20003 825 inlägg
#20

TIPS:
Alltid när du gör sånna här grejer är det bra att göra dom i editorn först.

Sen när du ska koda så kollar du på din statiska kod och lägger in databas anropen där de ska vara.

Låtsas att en användare heter Arne Anka och har ID 23 och har skostorlek 45 och så vidare.

Det blir lite mer uppenbart vad som ska in var på detta sättet.

142 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)