Avatar billede hinkesten Praktikant
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
Avatar billede nielle Nybegynder
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?
Avatar billede hinkesten Praktikant
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
Avatar billede nielle Nybegynder
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?
Avatar billede nielle Nybegynder
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
Avatar billede hinkesten Praktikant
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.
Avatar billede nielle Nybegynder
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.
Avatar billede hinkesten Praktikant
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>
&nbsp;</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>
Avatar billede jansangill Nybegynder
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
Avatar billede hinkesten Praktikant
11. august 2007 - 11:56 #9
Det virkede ikke så godt.

http://rafb.net/p/LIYASs51.html

Her er hele min kode
Avatar billede hinkesten Praktikant
11. august 2007 - 11:58 #10
jansangill

samme fejl :-(

Microsoft VBScript runtime error '800a01a8'
Object required: 'Conn'

/udsalgtest/default.asp, line 90
Avatar billede nielle Nybegynder
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?
Avatar billede nielle Nybegynder
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.
Avatar billede jansangill Nybegynder
11. august 2007 - 12:02 #13
aha, roger over:)
Avatar billede jansangill Nybegynder
11. august 2007 - 12:03 #14
Men ja, som nielle sagde, i det postede kode åbner du ikke databasen
Avatar billede hinkesten Praktikant
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)
Avatar billede nielle Nybegynder
11. august 2007 - 15:15 #16
Må vi se den nye version af koden?
Avatar billede jansangill Nybegynder
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.
Avatar billede hinkesten Praktikant
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)
Avatar billede nielle Nybegynder
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.
Avatar billede hinkesten Praktikant
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.
Avatar billede nielle Nybegynder
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>"
Avatar billede nielle Nybegynder
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?
Avatar billede hinkesten Praktikant
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>"
Avatar billede nielle Nybegynder
11. august 2007 - 21:51 #24
Response.Write "DEBUG2: [" & strSQL & "]<br>"
Avatar billede nielle Nybegynder
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
Avatar billede hinkesten Praktikant
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


:-(
Avatar billede jansangill Nybegynder
11. august 2007 - 23:13 #27
Kører du det hele via IIS eller webhotel?
Avatar billede jansangill Nybegynder
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.
Avatar billede nielle Nybegynder
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. :^)
Avatar billede hinkesten Praktikant
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.
Avatar billede nielle Nybegynder
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.
Avatar billede hinkesten Praktikant
16. august 2007 - 18:51 #32
mangler lige et svar fra jansangill også...
Avatar billede jansangill Nybegynder
16. august 2007 - 19:29 #33
Svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester