webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Utveckling > Webbutveckling > ASP

ASP Diskussioner om Active Server Pages, med relaterade scriptspråk (klassisk asp).

Svar
 
Trådverktyg Visningsalternativ
Äldre 2002-07-18, 09:22   #1
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
Felsökning

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
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 09:24   #2
icaaq
Medlem
 
Registrerad: 2000-10-01
Ort: Mora, jobbar i sthlm
Inlägg: 4 910
Lösningar: 103
Vad ger denna
Kod:

<% 
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 

%> 
__________________
When I work I have lot's of fun. vi söker folk, www.icaaq.com, twitter

mv icaaq
icaaq besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 09:29   #3
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
Den ger samma fel tyvärr...
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 09:33   #4
jepsO
Medlem
 
Registrerad: 2001-03-19
Ort: London
Inlägg: 423
Lösningar: 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?
jepsO besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 09:33   #5
ekke_t
Medlem
 
Registrerad: 2001-07-08
Ort: Lund
Inlägg: 198
Lösningar: 2
klart det blir samma fel... men ta bort
Kod:
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...
__________________
Erik
ekke_t besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 09:56   #6
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
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
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 10:24   #7
icaaq
Medlem
 
Registrerad: 2000-10-01
Ort: Mora, jobbar i sthlm
Inlägg: 4 910
Lösningar: 103
Citat:
icaaq skrev:
Vad ger denna
Kod:

<% 
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 

%> 
Vad ger denna
__________________
When I work I have lot's of fun. vi söker folk, www.icaaq.com, twitter

mv icaaq
icaaq besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 10:44   #8
jepsO
Medlem
 
Registrerad: 2001-03-19
Ort: London
Inlägg: 423
Lösningar: 4
Är det i selectmenyn "kund" som du listar ID-värden? Nånting liknande det här?
Kod:
<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.
jepsO besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 11:11   #9
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
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!
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 11:29   #10
solbulle
Medlem
 
Registrerad: 2001-03-12
Ort: Stockholm
Inlägg: 4 998
Lösningar: 64
Med andra ord får du inte med dig datan från formuläret.

Hur ser formuläret ut?
__________________
/solbulle
Hemmabio | Spelautomater | The Who
solbulle besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 11:54   #11
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
En rubrik och en selectmeny enbart!
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 11:55   #12
ekke_t
Medlem
 
Registrerad: 2001-07-08
Ort: Lund
Inlägg: 198
Lösningar: 2
kan du visa koden??
__________________
Erik
ekke_t besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 11:58   #13
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;
<input type="submit" name="Submit" value="Ändra">
</p>
</td>
</tr>

</table>
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 12:03   #14
ekke_t
Medlem
 
Registrerad: 2001-07-08
Ort: Lund
Inlägg: 198
Lösningar: 2
ok... har du testat att skriva
Kod:
id = request.form("kund")
precis som JepsO skrev...

det borde funka...
__________________
Erik
ekke_t besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 12:13   #15
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
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?
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 12:25   #16
jepsO
Medlem
 
Registrerad: 2001-03-19
Ort: London
Inlägg: 423
Lösningar: 4
Okej, vi tar det från början.

På den första sidan har du ett formulär med följande utseende:
Kod:
<select name="kund"> 
<%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
Kod:
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.
jepsO besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 12:42   #17
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
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%>"
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 12:49   #18
solbulle
Medlem
 
Registrerad: 2001-03-12
Ort: Stockholm
Inlägg: 4 998
Lösningar: 64
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%>">
__________________
/solbulle
Hemmabio | Spelautomater | The Who
solbulle besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 12:54   #19
ekke_t
Medlem
 
Registrerad: 2001-07-08
Ort: Lund
Inlägg: 198
Lösningar: 2
ger du variabeln Kund något värde??

T.ex.
Kod:
Kund = rs("kund")
__________________
Erik
ekke_t besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 13:28   #20
Eclipse
Medlem
 
Registrerad: 2000-07-13
Inlägg: 3 741
Lösningar: 6
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.
__________________
Champange ska vara torr, kall och gratis. Winston Churchill
The best computer is man, and is the only one wich can be mass-produced by unskilled labour. Werner von Braum 1912-1977
Eclipse besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 13:38   #21
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
solbulle:

<td width="33%">
<select name="kund">
<%do until rs.eof%>
<option value="<%=rs("id")%>"><%=rs("kund")%></option>
<%rs.movenext%>
<%loop%>
</select></td>

-----------------------------------------------------------------------------------
ekke_t:

jag har skrivit:

id=request.form("kund"), räcker inte det?
Dflex besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 13:44   #22
ekke_t
Medlem
 
Registrerad: 2001-07-08
Ort: Lund
Inlägg: 198
Lösningar: 2
för att kunna skriva ut ett värde från recordsetet måste du lägga det i en variabel... (så som jag skrev) eller skriva ut det direkt...

du borde alltså skriva
Kod:
<input type="text" name="kund" size="15" VALUE="<%=rs("kund")%>">
__________________
Erik
ekke_t besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 13:47   #23
solbulle
Medlem
 
Registrerad: 2001-03-12
Ort: Stockholm
Inlägg: 4 998
Lösningar: 64
Det där ska ju fungera tycker jag, och du är säker på att du verkligen postar dit formulär rätt och att hela din select är inom form-taggarna?

Men om du ska få ut något i:
Kod:
<input type="text" name="kund" size="15" VALUE="<%=Kund%>">
När du sen skriver:
Kod:
id=request.form("kund")
Ska det då inte stå id där det står kund alternativ:
request.form("kund")

RED: Ok, jag kanske missade där, se inlägget ovanför!
__________________
/solbulle
Hemmabio | Spelautomater | The Who
solbulle besöker inte forumet just nu   Svara med citat
Äldre 2002-07-18, 13:54   #24
Dflex
Medlem
 
Registrerad: 2002-06-19
Inlägg: 136
Lösningar: 0
ok...tacK!
Dflex besöker inte forumet just nu   Svara med citat
Svar
webForum > Utveckling > Webbutveckling > ASP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 04:01.


Powered by: vBulletin Version 3.8.6
Copyright © webForum