ACC: How to deaktivieren Sie die Schließen-Schaltfläche (X) auf der Access-Anwendungsfensters (95/97)

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 258049 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Erweiterte: Erfordert Experten Codierung und Interoperabilität sowie Mehrbenutzerfähigkeiten.

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

Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Microsoft Access verfügt über keine integrierte Methode für die Schaltfläche Schließen (X) auf das Anwendungsfenster oder den Befehl Schließen im das Systemmenü des Anwendungsfensters deaktivieren. Dieser Artikel beschreibt beide diese Elemente programmgesteuert zu deaktivieren.

Weitere Informationen

Um die Anwendungsschaltfläche Schließen und den Befehl Schließen im System deaktivieren, müssen Sie die GetSystemMenu und ModifyMenu -Funktion von der Win32-API aufrufen.

Microsoft bietet Programmierbeispiele für Abbildung nur ohne Gewährleistung oder konkludent. Dies umfasst, ist jedoch nicht beschränkt auf konkludenten Garantien der Handelsüblichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der Programmiersprache, die Programmierungsbeispiele ist und mit den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden vertraut sind. Microsoft Support-Technikern helfen Erläuterung die Funktionalität einer bestimmten Prozedur, Sie werden ändert jedoch nicht diese Beispiele bieten Funktionen hinzugefügt oder Verfahren, um Ihren Anforderungen entsprechend zu erstellen.

Vorgehensweise: Beispiel


  1. Starten Sie Microsoft Access.
  2. Öffnen Sie die Beispieldatenbank "Nordwind.mdb".
  3. Klicken Sie im Menü Einfügen auf Klassenmodul .
  4. Geben oder fügen den folgenden Code in den Deklarationsbereich:
    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
    
    Private Declare Function GetMenuItemInfo Lib "user32" Alias _
       "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As _
       Long, lpMenuItemInfo As MENUITEMINFO) As Long
    
    Private Type MENUITEMINFO
        cbSize As Long
        fMask As Long
        fType As Long
        fState As Long
        wID As Long
        hSubMenu As Long
        hbmpChecked As Long
        hbmpUnchecked As Long
        dwItemData As Long
        dwTypeData As String
        cch As Long
    End Type
    
    Const MF_GRAYED = &H1&
    Const MF_BYCOMMAND = &H0&
    Const SC_CLOSE = &HF060&
    					
  5. Fügen Sie die folgenden Prozeduren hinzu das Klassenmodul:
    Public Property Get Enabled() As Boolean
        Dim hWnd As Long
        Dim hMenu As Long
        Dim result As Long
        Dim MI As MENUITEMINFO
        
        MI.cbSize = Len(MI)
        MI.dwTypeData = String(80, 0)
        MI.cch = Len(MI.dwTypeData)
        MI.fMask = MF_GRAYED
        MI.wID = SC_CLOSE
        hWnd = Application.hWndAccessApp
        hMenu = GetSystemMenu(hWnd, 0)
        result = GetMenuItemInfo(hMenu, MI.wID, 0, MI)
        Enabled = (MI.fState And MF_GRAYED) = 0
    End Property
    
    Public Property Let Enabled(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 Property
    					
  6. Klicken Sie auf Northwind (um das Projekt zu speichern) speichern , und wenn Sie den Namen des Klassenmoduls aufgefordert speichern Sie es als CloseCommand, im Menü Datei .
  7. Klicken Sie im Einfügen auf Modul , um ein neues, standard-Modul erstellen.
  8. Fügen Sie die folgende Prozedur im Modul:
    Function InitApplication()
       Dim c As CloseCommand
       Set c = New CloseCommand
       
       'Disable Close menu.
       c.Enabled = False
    End Function
    					
  9. Klicken Sie im Menü Debuggen auf Compile Northwind . Wenn das Projekt nicht erfolgreich kompiliert wurde, korrigieren Sie den Kompilierungsfehler, und kompilieren Sie das Projekt erneut.
  10. Im Menü Datei klicken Sie auf Northwind speichern , und verwenden Sie den Namen Standard, der angezeigt wird im Feld Modulname durch Klicken auf OK .
  11. Erstellen Sie ein neues Makro mit den folgenden Aktionen und Aktion-Argumente:
       Action
       -------
       RunCode
    
       Action Arguments
       -------------------------------
       Function Name: InitApplication()
    					
  12. Speichern Sie das Makro und nennen Sie es Autoexec.
  13. Schließen Sie die Datenbank.
  14. Öffnen Sie die Datenbank erneut.
Beachten Sie, dass die Schaltfläche Schließen und den Befehl Schließen im das Systemmenü des Anwendungsfensters deaktiviert sind.

Belegung

Das CloseCommand-Klassenmodul der in diesem Artikel beschriebene können Sie problemlos aktivieren oder Deaktivieren der Schaltfläche Schließen und den Befehl Schließen des Anwendungsfensters. Das Klassenmodul können Sie auch überprüft den Status dieser Befehle festzustellen, ob Sie derzeit aktiviert oder deaktiviert werden. Vor dem Ausführen der beiden, muss Ihr Code zuerst erstellen eine Instanz der CloseCommand-Klasse, wie in der InitApplication-Funktion weiter oben in diesem Artikel veranschaulicht.

Auf um den Zustand der Schaltfläche Schließen zu überprüfen, verweisen Sie auf die Enabled -Eigenschaft der CloseCommand-Instanz, die Code erstellt. Ebenso zum Festlegen des Zustands der Schaltfläche Schließen true oder false der Enabled -Eigenschaft Zuweisen der CloseCommand-Instanz, die Code erstellt.

Bitte beachten Sie, dass dieses Verfahren auf das Anwendungsfenster von Microsoft Access nicht die Schaltfläche Schließen im Datenbankfenster auf die Schaltfläche Schließen auswirkt. Erneut nach dem Deaktivieren der Schaltfläche Schließen , wird die Schaltfläche nicht automatisch aktiviert beim Schließen der Datenbank. Der Benutzer sein Microsoft Access beenden, indem Sie die Schaltfläche Schließen , wenn der Benutzer die Datenbank schließt, Microsoft Access geöffnet lässt werden. In diesem Fall sollte die Anwendung die Schaltfläche Schließen reaktivieren, bevor er beendet wird. Andernfalls müssen der Benutzer Microsoft Access starten, damit die Schaltfläche Schließen aktiviert werden.

Diese Technik wird im Menü Datei auf den Befehl Beenden nicht deaktiviert. Wenn Ihre Anwendung diesen Befehl zu deaktivieren muss, müssen Sie im Menü Datei den Befehl Beenden entfernen anpassen.

Eigenschaften

Artikel-ID: 258049 - Geändert am: Samstag, 27. Januar 2007 - Version: 4.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Access 97 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 95 Standard Edition
Keywords: 
kbmt kbhowto KB258049 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 258049
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.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns