Artikel-ID: 300688 - Geändert am: Freitag, 30. Mai 2008 - Version: 6.2

Deaktivieren der Schaltfläche "Schließen" im Anwendungsfenster und des Befehls "Beenden" im Menü "Datei"

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
300688  (http://support.microsoft.com/kb/300688/EN-US/ ) How to disable the Close button on the Application window and the Exit command on the File menu
Fortgeschritten: Erfordert Fachkenntnisse in den Bereichen Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.

Dieser Artikel bezieht sich auf Microsoft Access-Datenbanken (.mdb) sowie auf Microsoft Access-Projekte (.adp).

In Artikel 245746  (http://support.microsoft.com/kb/245746/DE/ ) wird dieses Thema für Microsoft Access 2000 behandelt.
In Artikel 258049  (http://support.microsoft.com/kb/258049/DE/ ) wird dieses Thema für Microsoft Access 97 behandelt.
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.

Auf dieser Seite

Alles erweitern | Alles schließen

Zusammenfassung

Microsoft Access bietet keine integrierte Methode zum Deaktivieren der Schaltfläche Schließen (X) im Anwendungsfenster, des Befehls Schließen im Menü System des Anwendungsfensters oder des Befehls Beenden im Menü Datei. Dieser Artikel beschreibt, wie Sie diese Befehle mit einem Programm deaktivieren.

Weitere Informationen

Achtung: Wenn Sie die Schritte in diesem Beispiel ausführen, wird die Beispieldatenbank "Nordwind.mdb" geändert. Sie sollten daher eine Sicherungskopie der Datei "Nordwind.mdb" erstellen und diese Schritte in einer Kopie der Datenbank ausführen.

Sie müssen die Funktionen GetSystemMenu und EnableMenuItem aus der Win32-API aufrufen, um die Schaltfläche Schließen und den Befehl Schließen im Menü System zu deaktivieren.

Um den Befehl Beenden im Menü Datei zu deaktivieren, müssen Sie die Sammlung CommandBars verwenden, die das Ändern aller Menüleisten, Symbolleisten und Kontextmenüs mithilfe von Visual Basic für Applikationen ermöglicht.

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. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen. Die Spezialisten von Microsoft Product 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.

Beispiel mit Anleitung

  1. Starten Sie Microsoft Access.
  2. Öffnen Sie die Beispieldatenbank "Nordwind.mdb".
  3. Klicken Sie im Menü Einfügen auf Modul, um ein neues, standardmäßiges Modul zu erstellen.
  4. Geben Sie folgenden Code in den Deklarationsbereich ein:
    Option Compare Database
    Option Explicit
    
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, _
        ByVal bRevert As Long) As Long
    
    Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As _
        Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
    
    Const MF_GRAYED = &H1&
    Const MF_BYCOMMAND = &H0&
    Const SC_CLOSE = &HF060&
    
    Public Function SetEnabledState(blnState As Boolean)
        Call CloseButtonState(blnState)
        Call ExitMenuState(blnState)
    End Function
    
    'Disable the Menu Option
    Sub ExitMenuState(blnExitState As Boolean)
        Application.CommandBars("File").Controls("Exit").Enabled = blnExitState
    End Sub
    
    'Disable the Close Button Option
    Sub CloseButtonState(boolClose As Boolean)
        Dim hWnd As Long
        Dim wFlags As Long
        Dim hMenu As Long
        Dim result As Long
           
        hWnd = Application.hWndAccessApp
        hMenu = GetSystemMenu(hWnd, 0)
        If Not boolClose Then
            wFlags = MF_BYCOMMAND Or MF_GRAYED
        Else
            wFlags = MF_BYCOMMAND And Not MF_GRAYED
        End If
        
        result = EnableMenuItem(hMenu, SC_CLOSE, wFlags)
    End Sub
    					
  5. Klicken Sie im Menü Datei auf Nordwind speichern, und verwenden Sie den Standardnamen, der im Feld Modulname angezeigt wird, indem Sie auf OK klicken.
  6. Erstellen Sie ein neues Formular mit folgenden Eigenschaften:
       Formular: frmSetCloseState
       ------------------------
       Beschriftung: Zustand Schaltfläche Schließen
    
       Befehlsschaltfläche
       ------------------------
       Name: cmdEnable
       Beschriftung: Aktivieren
       BeimKlicken: Ereignisprozedur
    
       Befehlsschaltfläche
       ------------------------
       Name: cmdDisable
       Beschriftung: Deaktivieren
       BeimKlicken: Ereignisprozedur
    					
  7. Klicken Sie in der Entwurfsansicht mit der rechten Maustaste auf die Befehlsschaltfläche Aktivieren, und klicken Sie in dem daraufhin angezeigten Menü auf Ereignis.
  8. Klicken Sie auf Code-Generator, klicken Sie auf OK, und geben Sie anschließend folgenden Code in das resultierende Modul ein:
    Private Sub cmdEnable_Click()
        Call SetEnabledState(True)
    End Sub
    					
  9. Fügen Sie den folgenden Code für die Befehlsschaltfläche Deaktivieren hinzu:
    Private Sub cmdDisable_Click()
        Call SetEnabledState(False)
    End Sub
    					
  10. Speichern Sie das Formular, und öffnen Sie es in der Formularansicht
Die Befehlsschaltfläche Deaktivieren, die Schaltfläche Schließen, der Befehl Schließen des Anwendungsfensters und der Befehl Beenden im Menü Datei sind nun deaktiviert. Wenn Sie auf die Befehlsschaltfläche Aktivieren klicken, werden diese Befehle wieder aktiviert.

Verwendung

Der in diesem Artikel beschriebene Code ermöglicht das einfache Aktivieren oder Deaktivieren der Schaltfläche Schließen, des Befehls Schließen im Anwendungsfenster und des Befehls Beenden im Menü Datei, um zu verhindern, dass Benutzer die Anwendung auf diese Weise beenden.

Diese Methode wirkt sich zwar auf die Schaltfläche Schließen im Anwendungsfenster von Microsoft Access, aber nicht auf die Schaltfläche Schließen im Datenbankfenster aus. Wenn Sie diese Optionen deaktiviert haben, werden diese beim Schließen der Datenbank nicht wieder aktiviert. Wenn der Benutzer die Datenbank schließt und Microsoft Access geöffnet lässt, kann der Benutzer Microsoft Access nicht über die Schaltfläche Schließen oder den Befehl Beenden im Menü Datei beenden. In diesem Fall sollte die Anwendung beide Optionen wieder aktivieren, bevor sie beendet wird. Andernfalls muss der Benutzer Microsoft Access beenden und erneut starten, um die Schaltfläche Schließen und den Befehl Beenden im Menü Datei zu aktivieren.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Keywords: 
kbvba kbprogramming kbhowto KB300688
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.