Alle Frontends einer Multiuser-DB schließen
Zur Wartung oder zur Datensicherung ist es erforderlich, alle geöffneten Frontends einer Datenbank zu schließen. Oft machen einem die User zusätzliche Arbeit, indem sie nach Feierabend die Datenbank geöffnet lassen.
Dafür habe ich folgende Lösung entworfen. In der Datenbank (Backend) muss eine zusätzliche Tablle (tblShutdown) angelegt werden, die nur das Ja/Nein-Feld shutdown enthält. Diese Tabelle kann man dann in ein Administrationsfrontend einbinden und von dort über das Setzen des Ja/Nein Wertes in dem einzigen Datensatz das globale Schließen der Frontends einleiten.
Im Frontend muss ein Timer laufen (z.B. in einem unsichtbaren Formular), der in gewissen Abständen die Sub closeDB ausführt.
Probleme kann es geben, wenn in einem der Frontends der aktuelle Datensatz eine unvollständige Eingabe ist, die nicht gespeichert werden kann. Diese Situation sollte man unbedingt vor Einsatz der Funktion bedenken.
Sub closeDB()
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset _
("SELECT shutdown FROM tblShutdown")
If rs!shutdown = True Then
rs.Close
Application.CloseCurrentDatabase
End If
rs.Close
End Sub
(www.codekabinett.com)

