Microsoft Excel

Herbers Excel/VBA-Archiv

Recordset bewahren, Datenbank schliessen

    Betrifft: Recordset bewahren, Datenbank schliessen von: Hans T.
    Geschrieben am: 02.09.2003 00:15:11

    Hallo Excel-Leute

    Ich greife aus einem Excel-UserForm auf eine Access-Datenbank zu. Die Daten brauche ich Read-Only, d.h. als Snapshot. Wie kann ich über längere Zeit das Recordset im Speicher behalten, aber die Datenbank gleich nach dem Lesen wieder schliessen? Ich möchte vermeiden, das Recordset in ein Array einzulesen, da ich sonst viele Funktionen, die auf das Recordset zugreifen, umschreiben müsste.

    Bis jetzt machte ich es so:

    Set dbsSPE = OpenDatabase(Filename, , True)
    Set rstCompTable = dbsSPE.OpenRecordset(strSql, dbOpenSnapshot)
    ...
    dbsspe.close

    Weiss jemand eine Lösung?
    Vielen Dank für die Hilfe.

    Viel Gruss
    Hans T.

      


    Betrifft: AW: Recordset bewahren, Datenbank schliessen von: Hans W. Hofmann
    Geschrieben am: 02.09.2003 00:24:56

    Das Verfahren würde die Konsistenz der Daten beeinträchtigen und kann
    so wohl nicht umgesetzt werden. Da musst Du schon eine temporäre
    Datentabelle (klonen) anlegen und den Recordset dort zwischenspeichern....


    Gruß HW


      


    Betrifft: AW: Recordset bewahren, Datenbank schliessen von: Hans T.
    Geschrieben am: 02.09.2003 00:35:56

    Hallo Hans

    Danke für die schnelle Antwort.

    Ich bin mir bewusst, dass die Daten irgendwann veraltet sind. Das spielt aber keine Rolle, da bewusst mit einem Snapshot, d.h. einer Momentaufnahme gearbeitet wird.

    Das Klonen im Sinne von Set rstClone = rstCompTable.Clone klappt zwar. Der Klon verschwindet aber ebenfalls mit dbsSPE.Close. Ich nehme an, dass er nur ein Zeiger auf das gleiche Recordset ist. Kann man ein Recordset als eingenständiges Objekt kopieren? Kannst du mir dazu einen Hinweis geben?

    Danke

    Viele Grüsse
    Hans T.


      


    Betrifft: AW: Recordset bewahren, Datenbank schliessen von: Hans W. Hofmann
    Geschrieben am: 02.09.2003 15:21:00

    Ich hab das Objektmodell von DAO/ADO nicht auswendig parat.
    Aber wenn Du Deine Database geschlossen hast, dann ist sie geschlossen, oder?
    Es sein denn Du legst CreateDatabase, CreateTabelDef eine temoräre (lokale) Kopie für Deinen Snapshot an und kopierst die Daten dort rein...
    Aber wozu die Mühe?

    Gruß HW


     

    Beiträge aus den Excel-Beispielen zum Thema " Recordset bewahren, Datenbank schliessen"