Helmut: MS Access db connection und recordsets

Tag zusammen,

hab da ein keines problem

<%
Dim strConn, Conn, strPfadDB, SQLoben, SQLlinks, SQLhaubt
strPfadDB = Server.MapPath("/~db/edv.mdb")

strConn = "DRIVER=Microsoft Access-Treiber (*.mdb);UID=;PWD=;DBQ="
strConn = strConn & strPfadDB

SQLoben = "Select * From " & tbl_oben
SQLlinks = "Select * From " & tbl_links
SQLhaupt = "Select * From " & tbl_haupt
%>
Hier ein wenig HTML text

<%
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQLoben, strConn, 0, 1

Hier ein paar DB texte

rs.Close
set rs = nothing
%>

Wieder HTML

<%
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQLlinks, strConn, 0, 1

Hier ein paar DB texte

rs.Close
set rs = nothing
%>

Den ersten Recordset führt er mir aus aber beim zweiten bekomme ich einen unbekannten fehler.
Ich weiß das ich den gleichen rs nicht zweimal offen haben kann deswegen schliesse ich ihn.

Was mache ich falsch.

Schonmal danke für jede Antwort.
Gruß Helmut

  1. Hallo,

    hab da ein keines problem

    <%
    Dim strConn, Conn, strPfadDB, SQLoben, SQLlinks, SQLhaubt
    strPfadDB = Server.MapPath("/~db/edv.mdb")

    strConn = "DRIVER=Microsoft Access-Treiber (*.mdb);UID=;PWD=;DBQ="
    strConn = strConn & strPfadDB

    Warum machst Du die Conn, die da ja eigens Dimensioniert wurde, nicht auf? ADODB.Recordset.Open funktioniert zwar auch mit einem ConnectionString, verlässlicher ist aber eine Connection.

    set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open SQLoben, strConn, 0, 1

    Hier ein paar DB texte

    rs.Close

    Ein ADODB.Recordset hat keine Methode Close. Hier wird der Fehler erzeugt.

    viele Grüße

    Axel

    1. Hallo,

      rs.Close
      Ein ADODB.Recordset hat keine Methode Close. Hier wird der Fehler erzeugt.

      Sorry, ist Quatsch, man braucht es nur nie, wenn man die Connection schließen kann.

      Probiere mal, nur das recordset mit rs.Close zu schließen ohne die Variable rs auf Nothing zu setzten, dann musst Du nicht jedesmal ein neues ADODB.Recordset-Objekt erstellen, sondern öffnest mit rs.Open nur immer wieder ein neues Recordset. Eventuell liegt der Fehler dort.

      viele Grüße

      Axel

  2. Hallo,

    ... einen unbekannten Fehler

    Genauer kannst du den Fehler nicht spezifizieren? Obwohl, es gibt da imho ein paar "Unbekannte Fehler" bei ADO.
    Zeigt er dir da nicht die Zeile an, wo es aufgetreten ist?

    Was mache ich falsch.

    eher mit "?" ;-)

    Versuche doch am Anfang deiner Seite eine ADODB.Connection zu erzeugen, diese zu öffnen, das 1. Recordset zu öffnen, zu schließen, nochmal zu öffnen und wieder zu schließen und am Ende der Seite machst du die Connection wieder zu.

    Du musst auch nicht den ODBC Treiber für MS Access benutzen, der ist eh nur (afaik) ein zusätzlicher Layer auf OLEDB. Ein Umweg, den du auf einem ASP-fähigem System eigentlich nicht gehen musst.

    Ein ConnectionString sieht dann so aus (wenn mich nicht alles täuscht):
    Provider=Microsoft.Jet.OleDb.4.0;Data Source=<PfadzurMDB>;User Id=admin;

    HIH, Ciao, Frank