Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Feststellen wieviele Recordsets geöffnet sind
zurück: Passwort für per VBA-erzeugte DB erzeugen weiter: Mousedown im Formular Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
JMalberg
Es wird so langsam sinnig ...


Verfasst am:
23. Sep 2011, 10:12
Rufname:
Wohnort: Saarbrücken

Feststellen wieviele Recordsets geöffnet sind - Feststellen wieviele Recordsets geöffnet sind

Nach oben
       Version: Office 2003

Hallo in die Runde,

ich arbeite oft mit dem Konstrukt (Luftcode)
Code:
    Dim rs As DAO.Recordset
   
    Set rs = DBEngine.OpenRecordset(SQL_Irgendwas)
    '...
    rs.Close
    Set rs = Nothing
Dennoch erhalte ich ab und an die Fehlermeldung "Zu viele Datenbanken geöffnet" (ich kann den Fehlercode leider nicht bewusst reproduzieren), die ich auf obiges Konstrukt zurückführe.

Wie kann ich die maximale Anzahl offener Recordsets und die Anzahl aktuell geöffneter Recordsets feststellen, um im Code rechtzeitig zu reagieren?

Danke schon mal

_________________
Gruß
Jürgen

Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie!
steffen0815
VBA-Programmierer


Verfasst am:
23. Sep 2011, 17:29
Rufname:


AW: Feststellen wieviele Recordsets geöffnet sind - AW: Feststellen wieviele Recordsets geöffnet sind

Nach oben
       Version: Office 2003

Hallo,
also ich bin ja richtig dankbar für diese Frage Laughing .
Somit war ich jetzt mal angehalten, über dieses ewige Mysterium "Schließen von recordsets" nachzudenken.
Ja und warum lautet die Fehlermeldung "Zu viele Datenbanken ..." und nicht zu viele Recordset's (bzw. Tabellen).
Ja die Fehlermeldung stimmt durchaus, denn es sind nicht die offenen RS!

Recordsets (bzw. Tabellenverbindungen) kann man ca. 2045 öffnen, Datenbanken (Datenbankverbindungen) aber nur ca. 253.
Ja und wie "öffnet" man eine Datenbank? Mit z.B. dem allzeit verwendeten "Currentdb".

Die Anzahl der geöffneten Recordsets (je Datenbankinstanz) und die Anzahl der Datenbankverbindungen (je Workspace) lässt sich problemlos ermitteln

Allerdings ist auch bekannt, dass man auf das ständige Currentdb verzichten sollte (Globaler Verweis), damit sollte das Problem eigentlich nicht auftreten.
Auch das (eigentlich nicht empfohlene) "dbengine(0)(0)" dürfte diesen Fehler nicht bringen.

Ja und da stellt sich mir wieder die Frage, warum lokale RecordSet's geschlossen werden sollen !?
Da muss ich noch mal darüber nachdenken ...
Code:
Option Compare Database
Option Explicit

Sub FehlerfreierTest()
    Dim RSs(1 To 5000) As DAO.Recordset, i As Integer
    Dim rsAnz As Integer, dbAnz As Integer
    Dim wsp As DAO.Workspace, db As DAO.Database
   
    Set db = CurrentDb
    For i = 1 To 250
         Set RSs(i) = CurrentDb.OpenRecordset("T1")
    Next i
    For i = 300 To 1700
        Set RSs(i) = db.OpenRecordset("T1")
    Next i
    Set wsp = DBEngine(0)
    For dbAnz = 0 To wsp.Databases.Count - 1
        rsAnz = rsAnz + wsp.Databases(dbAnz).Recordsets.Count
    Next dbAnz
    MsgBox dbAnz & " Datenbanken mit " & rsAnz & " Recordsets geöffnet"
End Sub

Sub HärteTest()
    Dim RSs(1 To 5000) As DAO.Recordset, i As Integer
    Dim rsAnz As Integer, dbAnz As Integer
    Dim wsp As DAO.Workspace, db As DAO.Database
   
    On Error Resume Next
    Set db = CurrentDb
    For i = 1 To 500
        Set RSs(i) = CurrentDb.OpenRecordset("T1")
        If Err.Number <> 0 Then
            MsgBox Err.Number & ": " & Err.Description & _
                " Anzahl: " & DBEngine(0).Databases.Count
            Err.Clear
            Exit For
        End If
    Next i
    For i = 1 To 5000
        Set RSs(i) = db.OpenRecordset("T1")
        If Err.Number <> 0 Then
            Set wsp = DBEngine(0)
            For dbAnz = 0 To wsp.Databases.Count - 1
                rsAnz = rsAnz + wsp.Databases(dbAnz).Recordsets.Count
            Next dbAnz
            MsgBox Err.Number & ": " & Err.Description & _
                " Anzahl: " & rsAnz
            Err.Clear
            Exit For
        End If
    Next i
End Sub

_________________
Gruß Steffen
Gast



Verfasst am:
25. Sep 2011, 11:04
Rufname:

AW: Feststellen wieviele Recordsets geöffnet sind - AW: Feststellen wieviele Recordsets geöffnet sind

Nach oben
       Version: Office 2003

Einige Gedanken kann man auch hieraus ziehen: Mehr Datenbanken können nicht geöffnet werden
steffen0815
VBA-Programmierer


Verfasst am:
25. Sep 2011, 13:34
Rufname:


AW: Feststellen wieviele Recordsets geöffnet sind - AW: Feststellen wieviele Recordsets geöffnet sind

Nach oben
       Version: Office 2003

Hallo,
Eberhard hat folgendes geschrieben:
Eigentlich ist diese Fehlermeldung sogar irreführend, denn sie bezieht sich gar nicht auf Datenbanken, sondern auf Tabellen
Ich denke mal, dass ich mit meinem Code das Gegenteil bewiesen habe. Die Fehlermeldung "... zu viele Datenbanken" (Datenbankverweise/Datenbankinstanzen) halte ich danach für durchaus korrekt.
_________________
Gruß Steffen
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Formulare: Mit VBA Abfrage ausführen, bevor das Formular geöffnet wird 13 Roland100 406 01. Mai 2013, 12:04
Roland100 Mit VBA Abfrage ausführen, bevor das Formular geöffnet wird
Keine neuen Beiträge Access Berichte: per VBA abfragen in welcher Ansicht ein Bericht geöffnet ist 2 IchEben 293 13. Sep 2012, 08:38
IchEben per VBA abfragen in welcher Ansicht ein Bericht geöffnet ist
Keine neuen Beiträge Access Tabellen & Abfragen: Text in einer Spalte selektieren und Anzahl feststellen 10 RJanko 180 28. Jan 2012, 21:11
RJanko Text in einer Spalte selektieren und Anzahl feststellen
Keine neuen Beiträge Access Tabellen & Abfragen: Prüfen, ob Backend geöffnet 12 sk42 1115 23. Feb 2011, 00:42
Nouba Prüfen, ob Backend geöffnet
Keine neuen Beiträge Access Tabellen & Abfragen: Fallunterscheidung von wo Formular geöffnet wurde?? 3 Binichio 282 16. Sep 2010, 19:56
jens05 Fallunterscheidung von wo Formular geöffnet wurde??
Keine neuen Beiträge Access Tabellen & Abfragen: Fehlermeldung: Diese Datenbank ist bereits exklusiv geöffnet 0 Lothar_OMC 2545 02. März 2009, 12:58
Lothar_OMC Fehlermeldung: Diese Datenbank ist bereits exklusiv geöffnet
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Frage zu Filter eines Recordsets 1 stonezz 407 18. Sep 2008, 22:50
jens05 Frage zu Filter eines Recordsets
Keine neuen Beiträge Access Formulare: Hyperlink zu webadresse wird nicht geöffnet! Wieso? 1 Ocor 611 15. Mai 2008, 11:55
vincentk Hyperlink zu webadresse wird nicht geöffnet! Wieso?
Keine neuen Beiträge Access Formulare: Parameterabfrage erscheint weil Ufo nur im Hfo geöffnet wird 22 Matthichoren 1723 06. Feb 2008, 11:45
MatthiasChoren Parameterabfrage erscheint weil Ufo nur im Hfo geöffnet wird
Keine neuen Beiträge Access Formulare: Über Button auswählen welches Unterformular geöffnet wird 10 SaskiaS 501 19. Dez 2007, 16:07
Gast Über Button auswählen welches Unterformular geöffnet wird
Keine neuen Beiträge Access Formulare: Aus Unterformular (Endlos) soll bestimmter DS geöffnet werde 2 klaus31 487 20. Sep 2007, 10:56
klaus31 Aus Unterformular (Endlos) soll bestimmter DS geöffnet werde
Keine neuen Beiträge Access Berichte: RecordSets in Bericht eingeben! 1 Gast 481 31. März 2007, 20:25
jens05 RecordSets in Bericht eingeben!
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: CSS Forum