none
Access mit Komprimierung mittels VBA beenden - Access 2003 - Terminalserver 2008

    Frage

  • Hallo,

    folgende Situation:
    Beim Beenden meiner Access-Anwendung wird die mdb automatisch komprimiert. Wenn ich Access über das "Fenster-Schließen-Symbol" beende wird das Anwendungsfenster bis zum Ende der Komprimierung geöffnet gehalten und der Fortschritt der Komprimierung im Statusfeld (unten links im Access-Programmfenster) angezeigt.

    Nun das Problem:
    Meine Access-Anwendung wird aber "kontrolliert" per "Application.Quit" beendet. Dabei wird das Programmfenster sofort geschlossen. Es es nicht ersichtlich, dass Access tatsächlich noch gar nicht beendet ist - es läuft ja noch die Komprimierung unsichtbar im Hintergrund. Da die Access-Anwendung auf einem Terminalserver läuft, beenden die Mitarbeiter anschließend sofort die TS-Sitzung, denn sie wollen schnell in den Feierabend (verständlich).
    So passiert es immer wieder, dass die Access-Komprimierung unbeabsichtigt abgebrochen wird und sich die temporären Dateien der abgebrochenen Komprimierungen häufen.

    Nun meine Frage:
    Gibt es eine Möglichkeit das sofortige Schließen des Access-Programmfensters zu verhindern oder auf eine andere Art und Weise den Benutzer darauf aufmerksam zu machen, wann Access (die Komprimierung) tatsächlich beendet ist???

    Vielen Dank für die Unterstützung.

    Mfg

    Andreas

    Montag, 27. September 2010 11:08

Antworten

  • Hallo A.

    Das Frontend wird komprimiert. Dort befinden sich auch Tabellen mit User bezogenen Einstellungen und temporäre Tabellen, die User bezogene Daten während des Programmablaufs vorhalten.

    Eine andere (IMO bessere) Möglichkeit wäre, die temporären Tabellen in eine lokale temporäre Datenbank abzulegen, die Du beim Start bei Bedarf neu anlegen und einbinden kannst. Du kannst diese dann auch von der FE komprimieren, wenn Du lustig bist, z.B. beim Programmstart, bevor Du die Tabellen einbindest.

    Gruss

    Henry


    [MVP Office Access]
    Donnerstag, 30. September 2010 09:17

Alle Antworten

  • Am 27.09.2010 schrieb a.hst:

    Beim Beenden meiner Access-Anwendung wird die mdb automatisch komprimiert. Wenn ich Access über das "Fenster-Schließen-Symbol" beende wird das Anwendungsfenster bis zum Ende der Komprimierung geöffnet gehalten und der Fortschritt der Komprimierung im Statusfeld (unten links im Access-Programmfenster) angezeigt.

    Nun das Problem:
    Meine Access-Anwendung wird aber "kontrolliert" per "Application.Quit" beendet. Dabei wird das Programmfenster sofort geschlossen. Es es nicht ersichtlich, dass Access tatsächlich noch gar nicht beendet ist - es läuft ja noch die Komprimierung unsichtbar im Hintergrund. Da die Access-Anwendung auf einem Terminalserver läuft, beenden die Mitarbeiter anschließend sofort die TS-Sitzung, denn sie wollen schnell in den Feierabend (verständlich).
    So passiert es immer wieder, dass die Access-Komprimierung unbeabsichtigt abgebrochen wird und sich die temporären Dateien der abgebrochenen Komprimierungen häufen.

    Was wird komprimiert? Das Backend oder das Frontend? Das FE würde ich
    gar nicht komprimieren lassen, lieber würde ich bei jeder Anmeldung
    des Benutzers das FE wieder frisch ins Profil kopieren lassen.

    Das Backend würde ich vor dem Application.Quit komprimieren lassen,
    wenn es unbedingt sein muß. Ansonsten lieber auf dem Server einen
    regelmäßigen Task laufen lassen der das Backend komprimiert.

    6.7 Andere MDB komprimieren
    www.donkarl.com?FAQ6.7 Wenn Du das noch in ein kleines Formular
    packst, sieht der Anwender es passiert noch was.

    Servus
    Winfried


    Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
    GPO's: http://www.gruppenrichtlinien.de
    Community Forums NNTP Bridge: http://communitybridge.codeplex.com/

    Montag, 27. September 2010 11:17
  • Beim Beenden meiner Access-Anwendung wird die mdb automatisch komprimiert. Wenn ich Access über das "Fenster-Schließen-Symbol" beende wird das Anwendungsfenster bis zum Ende der Komprimierung geöffnet gehalten und der Fortschritt der Komprimierung im Statusfeld (unten links im Access-Programmfenster) angezeigt.

    Nun das Problem:
    Meine Access-Anwendung wird aber "kontrolliert" per "Application.Quit" beendet. Dabei wird das Programmfenster sofort geschlossen. Es es nicht ersichtlich, dass Access tatsächlich noch gar nicht beendet ist - es läuft ja noch die Komprimierung unsichtbar im Hintergrund. Da die Access-Anwendung auf einem Terminalserver läuft, beenden die Mitarbeiter anschließend sofort die TS-Sitzung, denn sie wollen schnell in den Feierabend (verständlich).
    So passiert es immer wieder, dass die Access-Komprimierung unbeabsichtigt abgebrochen wird und sich die temporären Dateien der abgebrochenen Komprimierungen häufen.

    Was wird komprimiert? Das Backend oder das Frontend? Das FE würde ich
    gar nicht komprimieren lassen, lieber würde ich bei jeder Anmeldung
    des Benutzers das FE wieder frisch ins Profil kopieren lassen.

    Das Frontend wird komprimiert. Dort befinden sich auch Tabellen mit User bezogenen Einstellungen und temporäre Tabellen, die User bezogene Daten während des Programmablaufs vorhalten.

     

    Das Backend würde ich vor dem Application.Quit komprimieren lassen,
    wenn es unbedingt sein muß. Ansonsten lieber auf dem Server einen
    regelmäßigen Task laufen lassen der das Backend komprimiert.

    Das Backend wird auf diese Weise nachts nach der Datensicherung komprimiert.

     

    Aber meine eigentliche Frage ging in eine andere Richtung. Ich schließe aus der Antwort, dass es wohl keine Möglichkeit gibt das gleiche Ablaufverhalten beim Application.Quit wie beim Schließen über die "Schließen-Schaltfläche" im Systemmenüfeld zu erreichen.

    Vielen Dank!

     

    MfG

    Andreas

     

    Dienstag, 28. September 2010 06:28
  • Hallo A.hst
     
    Es ist nicht empfehlenswert, diese automatische Komprimierung zu aktivieren. Gerade auf dem Terminal Server hast Du ja eine gute Kontrolle darüber, wann die Benutzer mit der Anwendung arbeiten. Komprimiere die Backend z.B. während der Nacht über einen scheduled Task (MDB mit der mit dem /compact Parameter starten). Zudem solltest Du vorgängig immer einen Backup machen, da es beim Komprimieren durchaus auch mal vorkommen kann, dass die MDB zerschossen wird, wenn sich da Korruptionen angesammelt haben. In A2010 wird es noch gefährlicher. Falls da jemand eine Spalte umbenennt (aus welchen Gründen auch immer), die in einer berechneten Spalte verwendet wird, so dass dort der Ausdruck ungültig wird, wirst Du allenfalls den kompletten Inhalt der Tabelle verlieren.
    Dass die FE nicht komprimiert werden muss, hat Winfried ja bereits geschrieben. Verwende besser ein Programm, das beim Start der Anwendung sicherstellt, dass die aktuelle Version des FEs auf den Client (oder die TS Sitzung) kopiert wird und dann diese startet. Wenn der "Master" komprimiert vorliegt, erübrigt sich das Komprimieren der FE in den meisten Fällen.
     
    Es ist wohl besser, auf dieses Feature zu verzichten.
     
    Gruss
    Henry
    "a.hst" <=?utf-8?B?YS5oc3Q=?=> wrote in message news:d33c134b-d7b9-4495-b40d-c170c9baec4f...

    Hallo,

    folgende Situation:
    Beim Beenden meiner Access-Anwendung wird die mdb automatisch komprimiert. Wenn ich Access über das "Fenster-Schließen-Symbol" beende wird das Anwendungsfenster bis zum Ende der Komprimierung geöffnet gehalten und der Fortschritt der Komprimierung im Statusfeld (unten links im Access-Programmfenster) angezeigt.

    Nun das Problem:
    Meine Access-Anwendung wird aber "kontrolliert" per "Application.Quit" beendet. Dabei wird das Programmfenster sofort geschlossen. Es es nicht ersichtlich, dass Access tatsächlich noch gar nicht beendet ist - es läuft ja noch die Komprimierung unsichtbar im Hintergrund. Da die Access-Anwendung auf einem Terminalserver läuft, beenden die Mitarbeiter anschließend sofort die TS-Sitzung, denn sie wollen schnell in den Feierabend (verständlich).
    So passiert es immer wieder, dass die Access-Komprimierung unbeabsichtigt abgebrochen wird und sich die temporären Dateien der abgebrochenen Komprimierungen häufen.

    Nun meine Frage:
    Gibt es eine Möglichkeit das sofortige Schließen des Access-Programmfensters zu verhindern oder auf eine andere Art und Weise den Benutzer darauf aufmerksam zu machen, wann Access (die Komprimierung) tatsächlich beendet ist???

    Vielen Dank für die Unterstützung.

    Mfg

    Andreas


    [MVP Office Access]
    Donnerstag, 30. September 2010 09:17
  • Hallo A.

    Das Frontend wird komprimiert. Dort befinden sich auch Tabellen mit User bezogenen Einstellungen und temporäre Tabellen, die User bezogene Daten während des Programmablaufs vorhalten.

    Eine andere (IMO bessere) Möglichkeit wäre, die temporären Tabellen in eine lokale temporäre Datenbank abzulegen, die Du beim Start bei Bedarf neu anlegen und einbinden kannst. Du kannst diese dann auch von der FE komprimieren, wenn Du lustig bist, z.B. beim Programmstart, bevor Du die Tabellen einbindest.

    Gruss

    Henry


    [MVP Office Access]
    Donnerstag, 30. September 2010 09:17