Remote-Herunterfahren einer benutzerdefinierten Access-Anwendung

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
304408 How to shut down a custom Access application remotely

Fortgeschritten: Erfordert umfangreiche Kenntnisse in den Bereichen Programmieren, Interoperabilität und Mehrbenutzeranwendungen.

Dieser Artikel bezieht sich ausschließlich auf eine Microsoft Access-Datenbank (.mdb oder .accdb).

Zusammenfassung

Zuweilen werden Sie Wartungsarbeiten an einer Microsoft AccessDatenbank durchführen müssen, zum Beispiel komprimieren oder reparieren, Sicherungskopien erstellen oder Entwurfsänderungen vornehmen. Bei vielen dieser Vorgänge müssen sich alle Benutzer bei der Datenbank abmelden. Es gibt jedoch keine im Programm verankerte Möglichkeit, alle Benutzer dazu zu zwingen Microsoft Access zu beenden. Es ist auch keine gute Idee, einfach den Zugang aller Benutzer zu Netzwerklösungen zu unterbrechen. Eine solche Vorgehensweise kann Beschädigungen der Datenbank zur Folge haben.

Dieser Artikel beschreibt eine Möglichkeit zum ordnungsgemäßen Herunterfahren einer Front-End-Access-Datenbankanwendung. Viele dieser Konzepte können Sie auch anwenden, um eine Datenbank zu komprimieren oder zu reparieren, Sicherungskopien zu erstellen und so weiter.

Die Verwendung der hier aufgeführten Informationen, Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. In diesem Artikel wird vorausgesetzt, dass Sie mit der in den Beispielen verwendeten Programmiersprache und mit den zum Erstellen und Debuggen von Prozeduren verwendeten Tools vertraut sind. Die Spezialisten von Microsoft Support Services können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, jedoch werden sie diese Beispiele nicht in Bezug auf eine erweiterte Funktionalität verändern, noch werden sie Prozeduren entwickeln, die auf Ihre besonderen Bedürfnisse zugeschnitten sind.

Weitere Informationen

Funktionsweise der Lösung

Diese Lösung funktioniert wie folgt: Auf einem Server befindet sich in einem Ordner eine bestimmte Datei. Diese Datei kann einen beliebigen Namen haben. Bei dieser Lösung wird eine Datei mit dem Namen chkfile.ozx verwendet. Wenn diese Datei umbenannt oder gelöscht wird, wird die Front-End-Access-Anwendung darüber informiert, dass sie geschlossen werden muss.

Es wird ein Formular erstellt, das geöffnet wird, wenn Benutzer die Front-End-Datenbankanwendung starten. Dieses Formular überprüft in festgelegten Zeitabständen, ob die Datei auf dem Server vorhanden ist. Hierzu verwendet es die Eigenschaft Zeitgeberintervall und das Ereignis "BeiZeitgeber".

Falls die Datei gefunden wird, geschieht nichts. Wird die Datei nicht gefunden, zeigt das Formular ein weiteres Formular an, um den Benutzer davor zu warnen, dass die Datenbank innerhalb einer festgelegten Zeitspanne automatisch geschlossen wird.

Hinweis: Diese Lösung verwendet nicht die Funktion MsgBox, um den Benutzer zu warnen. Die Funktion MsgBox wartet auf eine Eingabe des Benutzers, bevor sie irgendwelchen Code ausführt. Dies würde dem Zweck dieser Lösung zuwider laufen.

Um Clientsitzungen ordnungsgemäß zu schließen, benennt diese Lösung die zu überprüfende Datei um. Wenn alle vorgesehenen Aufgaben ausgeführt wurden, gibt diese Lösung der besagten Datei wieder ihren ursprünglichen Namen. Dadurch werden die Benutzer darüber informiert, dass sie die Front-End-Datenbank wieder starten können.

Dieser Prozess kann auch automatisiert werden, um eine unbeaufsichtigte Funktionsweise zu ermöglichen, bei der ein geplanter Dienst auf dem Server verwendet wird, der die Datei chkfile.ozx zu bestimmten Zeiten umbenennt.

Anleitung zum Erstellen eines Beispielszenarios

Sie benötigen Folgendes um demonstrieren zu können, wie diese Lösung funktioniert:

  • Einen Ordner mit dem Pfad "C:\MyData" auf Ihrer Festplatte.

  • Eine leere Datei. Diese Datei prüft, ob diese Datei vorhanden ist.

  • Ein geteiltes Datenbankdesign mit den Tabellen in der Back-End-Datenbankdatei und Verknüpfungen zu diesen Tabellen in der Front-End-Datenbank. Die Front-End-Datenbank enthält den Code, der in festgelegten Zeitabständen prüft, ob die Datei vorhanden ist, und dann den Benutzer warnt.

  • Erstellen des Ordners für die Beispielanwendung

  • Erstellen Sie einen Ordner mit dem Namen MyData im Stammverzeichnis von Laufwerk C.

    Erstellen der leeren Textdatei

    1. Erstellen Sie eine neue Textdatei mit dem Namen chkfile.txt im Ordner "MyData".

    2. Benennen Sie die Textdatei so um, dass sie die Dateinamenerweiterung ozx (chkfile.ozx) aufweist. Wenn Sie gefragt werden, ob Sie die Dateinamenerweiterung wirklich ändern möchten, bestätigen Sie dies.

    Erstellen der Back-End-Datenbank

    1. Erstellen Sie eine neue Datenbank mit dem Namen Northwind_Be.mdb im Ordner "C:\MyData".

    2. Importieren Sie die Tabelle "Customers" (Kunden) aus der Beispieldatenbank "Nordwind" in die Datenbank "Northwind_Be.mdb". (Der Standardpfad der Datenbank "Nordwind" ist "C:\Programme\Microsoft Office\Office10\Samples".)

    3. Schließen Sie die Datenbank.

    Erstellen der Front-End-Datenbank

    1. Erstellen Sie eine weitere neue Datenbank mit dem Namen Northwind_Fe.mdb.

    2. Verknüpfen der Tabelle "Customers" (Kunden) aus der Datenbank "Northwind_Be.mdb" mit der neuen Datenbank "Northwind_Fe.mdb"

    3. Erstellen Sie ein AutoFormular auf der Basis der verknüpften Tabelle "Customers" (Kunden), und speichern Sie es unter dem Namen frmCustomers. Schließen Sie dieses Formular.

    Erstellen des Formulars mit Code, der überprüft, ob die Datei vorhanden ist

    1. Erstellen Sie ein ungebundenes Formular mit dem Namen frmAppShutDown. In einer Produktionsdatenbank wäre dieses Formular normalerweise immer geöffnet aber nicht sichtbar. Für dieses Beispiel kann es wie üblich geöffnet bleiben.

    2. Legen Sie für die Eigenschaft Zeitgeberintervall des Formulars einen Wert von 60000 Millisekunden fest. Dies entspricht einer Minute. (Bei Ihrer eigenen Lösung können Sie dieses Zeitintervall verkürzen oder verlängern.)

    3. In Microsoft Office Access 2003 oder früheren Versionen von Access klicken Sie in der Entwurfsansicht des Formulars "frmAppShutDown" im Menü Ansicht auf Code. In Microsoft Office Access 2007 klicken Sie in der Entwurfsansicht des Formulars "frmAppShutDown" auf die Registerkarte Entwurf, und klicken Sie dann in der Gruppe Extras auf Code anzeigen. Geben oder fügen Sie den folgenden Code ein:

      Option Explicit
      Dim boolCountDown As Boolean
      Dim intCountDownMinutes As Integer

      Private Sub Form_Open(Cancel As Integer)
      ' Set Count Down variable to false
      ' on the initial opening of the form.
      boolCountDown = False
      End Sub

      Private Sub Form_Timer()
      On Error GoTo Err_Form_Timer
      Dim strFileName As String
      strFileName = Dir("c:\MyData\chkfile.ozx")
      If boolCountDown = False Then
      ' Do nothing unless the check file is missing.
      If strFileName <> "chkfile.ozx" Then
      ' The check file is not found so
      ' set the count down variable to true and
      ' number of minutes until this session
      ' of Access will be shut down.
      boolCountDown = True
      intCountDownMinutes = 2
      End If
      Else
      ' Count down variable is true so warn
      ' the user that the application will be shut down
      ' in X number of minutes. The number of minutes
      ' will be 1 less than the initial value of the
      ' intCountDownMinutes variable because the form timer
      ' event is set to fire every 60 seconds
      intCountDownMinutes = intCountDownMinutes - 1
      DoCmd.OpenForm "frmAppShutDownWarn"
      Forms!frmAppShutDownWarn!txtWarning = "This application will be shut down in approximately " & intCountDownMinutes & " minute(s). Please save all work."
      If intCountDownMinutes < 1 Then
      ' Shut down Access if the countdown is zero,
      ' saving all work by default.
      Application.Quit acQuitSaveAll
      End If
      End If

      Exit_Form_Timer:
      Exit Sub

      Err_Form_Timer:
      Resume Next
      End Sub
    4. Speichern Sie das Formular, und schließen Sie es dann.

    Erstellen des Formulars zur Warnung des BenutzersHinweis: Verwenden Sie nicht die Funktion MsgBox, um den Benutzer zu warnen. Die Funktion MsgBox wartet auf eine Eingabe des Benutzers, bevor sie irgendwelchen Code ausführt. Dies würde dem Zweck dieser Lösung zuwider laufen.

    1. Erstellen Sie ein ungebundenes Formular mit dem Namen frmAppShutDownWarn. Fügen Sie das folgende Textfeldsteuerelement hinzu:
      Name: txtWarning
      Typ: Textfeld

    2. Speichern und schließen Sie das Formular.

    3. Erstellen Sie ein Makro, das beim Starten die Formulare "frmCustomer" und "frmAppShutDown" öffnet. Geben Sie dem Makro den Namen autoexec.

    4. Schließen Sie die Datenbank, und öffnen Sie sie danach wieder.

    5. Benennen Sie die Datei chkfile.ozx um zu chkfile.old.

Zeitplan für Ereignisse der Lösung

Hinweis: Alle folgenden Zeitangaben sind Näherungswerte gerechnet ab dem Umbenennen der Datei "chkfile.ozx".

  • Eine Minute oder weniger: "Northwind_FE.mdb" stellt fest, dass die zu überprüfende Datei nicht vorhanden ist.

  • Zwei Minuten: In "Northwind_FE.mdb" wird ein Formular geöffnet, das Sie davon in Kenntnis setzt, dass die Datenbank in einer Minute geschlossen wird.

  • Drei Minuten: "Northwind_FE.mdb" wird automatisch geschlossen, alle Arbeiten werden gespeichert.

Informationsquellen

Weitere Informationen finden Sie in folgenden Artikeln der Microsoft Knowledge Base:

287655 ACC2002: Anmeldung von Benutzern zur Laufzeit mit Connection-Steuerelement verhindern

230575 ACC2000: Starten von Zugriff wie unter Verwendung des Windows NT-Zeitplan-Diensts

303528 Optimale Pflege einer Jet 4.0-Datenbank

Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×