11. august 2007 - 10:01
Der er
31 kommentarer og 2 løsninger
Access forbindelse fejl
Hej
Jeg har problemer med min asp kode. Den er som nedenstående:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("acc1.mdb")
if request("kategori") = "" then
strSQL = "select * from produkter ORDER BY kategori DESC"
else
strSQL = "select * from produkter where kategori = " & request.querystring("kategori")
end if
set rs = Conn.Execute(strSQL)
if rs.EOF then
Response.write "Der er ingen produkter i databasen."
else
Do Until rs.EOF
Jeg får flg. fejl:
Microsoft VBScript runtime error '800a01a8'
Object required: 'DataConn'
/udsalg/default.asp, line 94
Linie 94 er:
set rs = Conn.Execute(strSQL)
http://www.golf3.dk/udsalg - her kan i se det hvis i vælger en kategori
håber i kan hjælpe.
MVH Dennis
Annonceindlæg fra Conscia
11. august 2007 - 10:11
#1
Fejlen går på en variabel som skulle hedde 'DataConn'. Din kode viser den ikk, så den må væere et eller andet sted på siden?
11. august 2007 - 10:24
#2
nielle, det er noget jeg har hentet fra et gammelt script, så det er muligt at det ikke passer helt som fod i hose - jeg kan desværre ikke programmere helt fra bunden af. Kan du hjælpe mig? Jeg åbner med: 'Connection til databasen Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("acc1.mdb") if request("kategori") = "" then strSQL = "select * from produkter ORDER BY kategori DESC" else strSQL = "select * from produkter where kategori = " & request.querystring("kategori") end if set rs = Conn.Execute(strSQL) if rs.EOF then Response.write "Der er ingen produkter i databasen." else Do Until rs.EOF og lukker med: RS.MoveNext Loop end if Conn.Close Set Conn = Nothing
11. august 2007 - 10:31
#3
Har du lavet en søgning i din nuværende kode for at finde stedet hver der stpr DataConn?
11. august 2007 - 10:34
#4
Resten af din kode ser helt fin ud, selv om den bliver mere læselig med noget bedre formatering: 'Connection til databasen Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("acc1.mdb") If "" & Request.QueryString("kategori") = "" Then strSQL = "SELECT * FROM produkter ORDER BY kategori DESC" Else strSQL = "SELECT * FROM produkter WHERE kategori = " & Request.QueryString("kategori") End If Set rs = Conn.Execute(strSQL) If rs.EOF Then Response.Write "Der er ingen produkter i databasen." Else Do Until rs.EOF ' og lukker med: rs.MoveNext Loop End If Conn.Close Set Conn = Nothing
11. august 2007 - 11:37
#5
http://golf3.dk/udsalgtest/default.asp?kategori=forlygter Jeg får flg. fejl
Microsoft VBScript runtime error '800a01a8'
Object required: 'Conn'
/udsalgtest/default.asp, line 90
Linie 90:
Set rs = Conn.Execute(strSQL)
Der står ikke dataconn nogle steder, det var en "testkode" jeg smed ind hvor det var i. Koden er som den jeg har skrevet i tidligere indlæg.
11. august 2007 - 11:49
#6
Du bliver nok nødt til at poste noget mere kode. Fejlen er ikke i det kode du har vist indtil videre.
11. august 2007 - 11:55
#7
<table span class="normal"border="0" width="750" id="table1" cellspacing="0" cellpadding="0" style="padding: 0"> <tr> <td style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 1px" bordercolor="#000000"> <p align="center"><b><font color="#808080">[</font><font color="#DE8807"> Dennis </font><font color="#808080">|</font><font color="#DE8807"> Tlf. 41 62 52 42 </font><font color="#808080">|</font><font color="#DE8807"> Aalborg </font><font color="#808080">]</font></b><font color="#FF9900"><br> </font></td> </tr> <tr> <td style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 1px; border-left-style:solid; border-right-style:solid" bordercolor="#000000" height="21" bgcolor="#C0C0C0"> <table span class="normal" border="0" width="100%" id="table13" cellspacing="0" cellpadding="0"> <tr> <td width="247" align="center" style="border-bottom-style: solid; border-bottom-width: 1px" bgcolor="#75A0CC" bordercolor="#000000"><b> TIL FRONT</b></td> <td width="248" align="center" style="border-bottom-style: solid; border-bottom-width: 1px" bgcolor="#75A0CC" bordercolor="#000000"><b> TIL BAG</b></td> <td width="248" align="center" style="border-bottom-style: solid; border-bottom-width: 1px" bgcolor="#75A0CC" bordercolor="#000000"><b>ANDET</b></td> </tr> <tr> <td width="247" align="center"> <a href="default.asp?kategori=forlygter">FORLYGTER</a><br> <a href="default.asp?kategori=frontgrill">FRONTGRILL</a><br> <a href="default.asp?kategori=forkofangere">FORKOFANGERE</a><br> <a href="default.asp?kategori=hjelmforlaengere">HJELMFORLÆNGERE</a></td> <td width="248" align="center"> <a href="default.asp?kategori=baglygter">BAGLYGTER</a><br> <a href="default.asp?kategori=bagkofangere">BAGKOFANGERE</a></td> <td width="248" align="center"> <a href="default.asp?kategori=undervogne">UNDERVOGNE</a><br> <a href="default.asp?kategori=udstoedning">UDSTØDNING</a><br> <a href="default.asp?kategori=rat">RAT</a><br> <a href="default.asp?kategori=elruder">ELRUDER</a><br> <a href="default.asp?kategori=spoilere">SPOILERE</a></td> </tr> </table> </td> </tr> <tr> <td style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; padding-left: 1px; border-left-style:solid; border-right-style:solid" bordercolor="#000000" height="21" bgcolor="#C0C0C0"> <p align="center"><font color="#0000B0"><b> <% response.write "VISER NU: " if request("kategori") = "" then response.write "ALLE PRODUKTER" elseif request("kategori") = "forlygter" then response.write "FORLYGTER" elseif request("kategori") = "frontgrill" then response.write "FRONTGRILL" elseif request("kategori") = "forkofangere" then response.write "FORKOFANGERE" elseif request("kategori") = "hjelmforlaengere" then response.write "HJELMFORLÆNGERE" elseif request("kategori") = "baglygter" then response.write "BAGLYGTER" elseif request("kategori") = "bagkofangere" then response.write "BAGKOFANGERE" elseif request("kategori") = "undervogne" then response.write "UNDERVOGNE" elseif request("kategori") = "udstoedning" then response.write "UDSTØDNING" elseif request("kategori") = "rat" then response.write "RAT" elseif request("kategori") = "elruder" then response.write "ELRUDER" elseif request("kategori") = "spoilere" then response.write "SPOILERE" end if %> </b></font></td> </tr> <% If "" & Request.QueryString("kategori") = "" Then strSQL = "SELECT * FROM produkter ORDER BY kategori DESC" Else strSQL = "SELECT * FROM produkter WHERE kategori = " & Request.QueryString("kategori") End If Set rs = Conn.Execute(strSQL) If rs.EOF Then Response.Write "Der er ingen produkter i databasen." Else Do Until rs.EOF %> <tr> <td> <table span class="normal"border="0" width="100%" id="table2" cellspacing="0" cellpadding="0" style="border-left-style: solid; border-left-width: 1px; border-right-style: solid; border-right-width: 1px; border-top-width: 1px; border-bottom-style: solid; border-bottom-width: 1px" bordercolor="#000000" bgcolor="#FFFFFF"> <tr> <td width="250" style="padding: 4px"> <p align="center"><a href="img/<%=rs("varenummer")%>.jpg"><img src="img/<%=rs("varenummer")%>.jpg" height="150" width="200" border="0"></a></td> <td width="250" valign="bottom" style="padding: 4px"> <table span class="normal"border="0" width="100%" id="table7" cellspacing="0" cellpadding="0"> <tr> <td width="250" colspan="2" style="border-bottom-style: solid; border-bottom-width: 1px; padding-top: 4px; padding-bottom: 4px" bordercolor="#808080"><b><%=rs("varenavn")%></b></td> </tr> <tr> <td width="124" style="border-bottom-style: solid; border-bottom-width: 1px; padding-top: 4px; padding-bottom: 4px" bordercolor="#808080"> <b>Varenummer</b></td> <td width="125" style="border-bottom-style: solid; border-bottom-width: 1px; padding-top: 4px; padding-bottom: 4px" bordercolor="#808080"><%=rs("varenummer")%></td> </tr> <tr> <td width="250" colspan="2" style="padding-top: 4px; padding-bottom: 4px" bordercolor="#808080">Produkter er helt nyt, embellage ej brudt.</td> </tr> </table> </td> <td width="250" style="padding: 4px" valign="bottom"> <table span class="normal"border="0" width="100%" id="table8" cellspacing="0" cellpadding="0"> <tr> <td width="125" align="right" style="border-bottom-style: solid; border-bottom-width: 1px; padding-top: 4px; padding-bottom: 4px" bordercolor="#808080"> <b><font color="#008000">Pris</font></b></td> <td width="125" align="right" style="border-bottom-style: solid; border-bottom-width: 1px; padding-top: 4px; padding-bottom: 4px" bordercolor="#808080"> <font face="Tahoma" color="#008000"><b><%=rs("pris")%> kr.</b></font></td> </tr> <tr> <td width="125" align="right" style="border-bottom-style: solid; border-bottom-width: 1px; padding-top: 4px; padding-bottom: 4px" bordercolor="#808080"> <p align="right"><font color="#FF0000"><b>Vejl. udsalgspris</b></font></td> <td width="125" align="right" style="border-bottom-style: solid; border-bottom-width: 1px; padding-top: 4px; padding-bottom: 4px" bordercolor="#808080"><strike> <font face="Tahoma" color="#FF0000"><b><%=rs("vejlpris")%> kr.</b></font></strike></td> </tr> <tr> <td width="125" align="right" bordercolor="#808080" style="padding-top: 4px; padding-bottom: 4px"><b>Besparelse</b></td> <td width="125" align="right" bordercolor="#808080" style="padding-top: 4px; padding-bottom: 4px">(<%=int(100 - (rs("pris") / rs("vejlpris")) * 100)%>% rabat) <b><%=rs("vejlpris") - rs("pris")%> kr.</b></td> </tr> </table> </td> </tr> </table> </td> </tr> <% rs.MoveNext Loop End If Conn.Close Set Conn = Nothing %> </table>
11. august 2007 - 11:55
#8
Måske ligger fejlen i dette her, da den ikke kan finde din sql: If "" & Request.QueryString("kategori") = "" Then strSQL = "SELECT * FROM produkter ORDER BY kategori DESC" Else strSQL = "SELECT * FROM produkter WHERE kategori = " & Request.QueryString("kategori") End If ændrer det til: If Request.QueryString("kategori") = "" Then strSQL = "SELECT * FROM produkter ORDER BY kategori DESC" Else strSQL = "SELECT * FROM produkter WHERE kategori = " & Request.QueryString("kategori") End If
11. august 2007 - 11:58
#10
jansangill samme fejl :-( Microsoft VBScript runtime error '800a01a8' Object required: 'Conn' /udsalgtest/default.asp, line 90
11. august 2007 - 11:59
#11
I den kode du har postet har du jo slet ikke linjerne: 'Connection til databasen Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("acc1.mdb") med?
11. august 2007 - 12:01
#12
Tricket med at sætte en "" foran: If "" & Request.QueryString("kategori") = "" Then er for at sikre at venstresiden i ligheden altid er en string, også selv om Request.QueryString("kategori") er tom.
11. august 2007 - 12:02
#13
aha, roger over:)
11. august 2007 - 12:03
#14
Men ja, som nielle sagde, i det postede kode åbner du ikke databasen
11. august 2007 - 15:07
#15
Den smuttede vist. Jeg har nu tilføjet det igen, men får denne fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. /test/default.asp, line 94 Linie 94 er denne: set rs = Conn.Execute(strSQL)
11. august 2007 - 15:15
#16
Må vi se den nye version af koden?
11. august 2007 - 15:45
#17
Too few parameters. Expected 1 Microsoft OLE DB Provider for ODBC Drivers (0x80040E10) [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. This error occurs only with Microsoft Access when one of the field names used in a select statement does not exist in the table being queried. Check that your SQL query is correct and that you have not misspelled any of the field names in your select statement and that the field name exists in the table being queried.
11. august 2007 - 16:42
#18
Den nye kode som den er nu:
http://rafb.net/p/9dW24F39.html Jeg kan ikke umiddelbart se nogen fejl i koden? Den siger det er denne linie det går galt:
set rs = Conn.Execute(strSQL)
11. august 2007 - 17:13
#19
Prøv at rette: 'Connection til databasen Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("acc1.mdb") til: 'Connection til databasen Dsn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("acc1.mdb") Response.Write "DEBUG: " & Dsn & "<br>" Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Dsb og fortæl så om værdien af Dsn ser rigtig ud. Mit bud er at den MDB-fil ligger et andet sted end hvor scriptet kigger efter den.
11. august 2007 - 20:16
#20
nielle DEBUG: DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\Webs\golf3.dk\test\acc1.mdb Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified /test/Default.asp, line 89 og databasen ligger altså lige netop på den placering der. Det sjove er jo at hvis jeg fjerner if-sætningerne omkring at trække data ud via querystringen kategori, så er der intet problem.
11. august 2007 - 20:57
#21
Ok, det ser jo udemærket ud. Det næste vi skal kigge på må så være SQL-strengen: Resoponse.Write "DEBUG2: [" & strSQL & "]<br>"
11. august 2007 - 20:58
#22
Hmm, jeg kan da iøvrigt se at fejlbeskeden er en anden end den var tidligere. Har du nogen forklaring på hvordan det kan være?
11. august 2007 - 21:03
#23
nielle nej det har jeg virkelig ikke, det er underligt efter atkigge på sql strengen får jeg denne fejl Microsoft VBScript runtime error '800a01a8' Object required: '' /test/Default.asp, line 86 Linie 86: Resoponse.Write "DEBUG2: [" & strSQL & "]<br>"
11. august 2007 - 21:51
#24
Response.Write "DEBUG2: [" & strSQL & "]<br>"
11. august 2007 - 21:53
#25
Ahhh, det er min skyld at fejlen nu er en anden: Ret: Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Dsb - til: Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Dsn
11. august 2007 - 22:59
#26
DEBUG: DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\Webs\golf3.dk\test\acc1.mdb Microsoft OLE DB Provider for ODBC Drivers error '80040e10' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. /test/default.asp, line 98 :-(
11. august 2007 - 23:13
#27
Kører du det hele via IIS eller webhotel?
11. august 2007 - 23:14
#28
og er du sikker på at du kalder at alle de felter du kaler er korrekte? Prøve måske at øndre dine felter, og derfra prøv igen.
12. august 2007 - 07:34
#29
Prøv at indsætte min debug-linje: Response.Write "DEBUG2: [" & strSQL & "]<br>" *inden* at du laver det første kald til basen. :^)
15. august 2007 - 22:07
#30
Gider i lave nogle svar - jeg har ikke fundet ud af det, men orker ikke at blive ved :-) hehe. Men tak for jeres hjælp i får pointene.
16. august 2007 - 08:22
#31
Det er da trist ... jeg er sikker på at det bare er en lille dum fejl som skal ryddes af vejen før at det virker. ... og et svar men, hvis du får lyst senere, kan vi jo bare fortsætte her i dette spørgsmål.
16. august 2007 - 18:51
#32
mangler lige et svar fra jansangill også...
16. august 2007 - 19:29
#33
Svar.
Kurser inden for grundlæggende programmering