Office: (Office 2010) acOutputReport acFormatPDF Err: 3048 Mehr Datenbanken können nicht geöffnet werden

Helfe beim Thema acOutputReport acFormatPDF Err: 3048 Mehr Datenbanken können nicht geöffnet werden in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich bin hier neu angemeldet habe aber schon sehr viel hier gestöbert. Danke erstmals. Nun habe ich ein Problem mit dem PDF Export in Access... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von boef, 6. Juni 2011.

  1. acOutputReport acFormatPDF Err: 3048 Mehr Datenbanken können nicht geöffnet werden


    Hallo, ich bin hier neu angemeldet habe aber schon sehr viel hier gestöbert. Danke erstmals.

    Nun habe ich ein Problem mit dem PDF Export in Access 2010:

    Folgender Code:
    Zur Info: Es handelt sich um eine Testdatenbank extra erstellt um den Fehler zu reproduzieren.
    Es gibt eine verküpfte Tabelle, eine Formular mit einem Button der das Makro startet und einen Bericht der mit Daten aus der Tabelle (SELECT * FROM Tabelle1; ) befüllt wird.
    Die Schleife läuft ca. bis 250 und dann kommt die Fehlermeldung: 3048 Mehr Datenbanken können nicht geöffnet werden

    Wenn ich auch nur ein PDF exportiere bleibt die Datenbank offen obwohl ich den Bericht wieder schliesse.

    Was mache ich falsch ?

    Gruss und Danke im Voraus für die Hilfe
    Böf

    PS: Ach ja, das ganze funktioniert problemlos wenn man alles in einer Datei hat.

    :)
     
  2. Hi und willkommen im Forum,

    wie sieht denn die Datenherkunft des Berichts aus?
    Evtl. reicht es, die verknüpfte Tabelle im Hintergrund offen zu lassen.

    Sprich zu Testzwecken die Tabelle einfach in der Tabellenansicht öffnen und dann Deinen Code ausführen.

    Frage:
    Wieso wiederholst Du genau diesen einen Vorgang 300x ?
    Evtl. kommt es auch zu einem "Timing"-Problem
     
    CptChaos, 8. Juni 2011
    #2
  3. Das klingt danach als wenn das Problem am Objekt-Handling von MS-Access liegen könnte:

    Du kannst nur eine bestimmte Anzahl an Objekten gleichzeitig handeln.

    Dabei zählt quasi alles was mit Daten zu tun hat gegen das Limit (Tabellen in SQL-Statements, Recordsets, CurrentDB-Referenzen, jede verknüpfte Tabelle in der DB etc., etc.).

    Aber das es bei Deinem Code vorkommt ist allerdings seltsam weil selbst 250 mal eine verknüpfte Tabelle ansprechen erzeugt nicht mal 1000 Objekte und bei 4000 ist das Limit (zumindest bei Acc2007).

    Könnte mir das jetzt nur erklären das es da einen Zusammenhang zu DoCmd gibt (das ein DoCmd-Befehl z.B. ein Objekt zum Handling erzeugt).

    Versuche doch mal den inneren Code-Bereich der Schleife in eine eigene Funktion auszulagern und diese dann pro Schleifendurchlauf anzuspringen ... vielleicht wird ja das DoCmd-Handling nach verlassen der Funktion "freigegeben" und blockiert nicht mehr.

    Ist aber nur eine Vermutung.

    Gruß

    Rainer
     
    raist10, 8. Juni 2011
    #3
  4. acOutputReport acFormatPDF Err: 3048 Mehr Datenbanken können nicht geöffnet werden

    \@CptChaos
    Datensatzherkunft des Berichtes: SELECT Tabelle1.* FROM Tabelle1;

    Tabelle1 hat: ID Autowert und Wort Text
    und es sind 3 Worte eingegeben

    Wenn ich die Tabelle1 im Hintergrund offen lasse schaft es der Schleifenzähler auf 247 *wink.gif*

    Das richtige Programm soll aus Daten Lieferscheine erzeugen die ausgedruckt und als PDF abgespeichert werden. Da kann es locker mal sein 300 Lieferscheine hintereinander zu erstellen.

    Timing Problem sehe ich keines. Problem tritt auch auf wenn ich nach jedem PDF Export 1 Sekunde ne Warteschleife mache. Und das sollte ja für Access dann kein Problem mehr sein.
    Code:
    @raist10
    Code:
    Geht genauso nicht. Gleiches Problem. AUch wenn ich die Function in ein eigenes Modul werfe ^^

    @all
    Info:
    Testdaten.accdb hier befindet sich die Tabelle1
    Testmenü.accdb hier der Bericht und das Formular

    Wenn ich den Bericht händisch aufmache wird ja eine temporäre Datei in der sich Tabelle1 befindet gemacht: Testdaten.laccdb.
    Wenn ich den Bericht wieder zumache ist diese Datei wieder weg.

    Wenn ich aber 1 mal einen Export nach PDF mache so und der Bericht auch wieder zu ist ist diese Datei immer noch da.
    Ob Berichte offen sind habe ich mit Reports.Count geprüft. Dies ist 0.

    Es wird also pro PDF Export scheinbar eine Connection zur Tabelle1 bzw. der Datei Testdaten.accdb aufgebaut die hängen bleibt.
    Wenn ich die Zeile "DoCmd.OutputTo acOutputReport, "Bericht1", acFormatPDF, Speicherort & "Test.pdf", False" auskommentiere läuft das ganze bis über 1000 problemlos.

    Ich habe die Dateien mal angehängt.

    Gruss

    PS: an eine andere Art die PDFs zu erstellen habe ich auch schon gedacht, aber das ganze läuft später dann auf einer Citrix Umgebung und ich will da nicht unbedingt zusätzliche dll raufgeben.
    PS1: Kann man diese Connection nicht irgendwie schliessen ? Dabei muss aber bedacht werden dass im reellen Programm auch 1 Formular offen ist dass aber eine Connection braucht.
     
  5. Huiii, Lösung gefunden

    DoCmd.OutputTo acOutputReport, "Bericht1", acFormatPDF, Speicherort & "Test.pdf", False

    Dieser Befehl öffnet den Bericht unsichbar und scheinbar auch nicht mehr für Access erkennbar. Er dürfte aber noch irgendwo rumschwirren. Wenn dann also 300 Berichte offen sind ist das zu viel für Access.

    Lösung: Bericht öffnen im Design Modus, z.B. Filter setzten, Bericht schliessen und speichern, dann erst exportieren, die temporäre Datei Testdaten.laccdb (wie oben beschrieben) ist auch nicht da


    Code:
    Danke für die Hilfen

    Gruss
     
Thema:

acOutputReport acFormatPDF Err: 3048 Mehr Datenbanken können nicht geöffnet werden

  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden