ACC: Het uitschakelen van de knop Sluiten (x) op het toepassingsvenster van Access (95/97)

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 258049 - Bekijk de producten waarop dit artikel van toepassing is.
Geavanceerd: Expert codering, interoperabiliteit en meerdere gebruikers vaardigheden vereist.

Dit artikel geldt alleen voor Microsoft Access-database (.mdb).

Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

Microsoft Access heeft geen ingebouwde methode voor het uitschakelen van deSluitenknop (x) in het toepassingsvenster van de of hetSluitenin deSysteemmenu van het toepassingsvenster. In dit artikel wordt beschreven hoe u programmatisch uitschakelen van deze elementen.

Meer informatie

Voor de toepassing uitschakelenSluitenknop en deSluitenin deSysteemmenu, moet u deGetSystemMenuenModifyMenufuncties van de Win32 API.

Microsoft biedt programming voorbeelden ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal wordt aangetoond en de hulpmiddelen maken en procedures voor foutopsporing worden gebruikt. Ondersteuningstechnici van Microsoft kunnen de functionaliteit van een bepaalde procedure uitgelegd, maar niet passen deze voorbeelden om functionaliteit toegevoegd of procedures uw specifieke behoeften te maken.

Stapsgewijs voorbeeld


  1. Start Microsoft Access.
  2. Open de voorbeelddatabase Noordenwind.mdb.
  3. Op deInvoegenmenu, klik opKlassemodule.
  4. Typ of plak de volgende code in de declaratiesectie:
    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. Voeg de volgende procedures aan de klassemodule:
    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. Op deBestandmenu, klik opOpslaan van Noordenwind (het project wilt opslaan), en wanneer u wordt gevraagd de naam van de klassemodule, opslaan als CloseCommand.
  7. Op deInvoegenmenu, klik opModuleMaak een nieuw standaard-module.
  8. De volgende procedure toevoegen aan de module:
    Function InitApplication()
       Dim c As CloseCommand
       Set c = New CloseCommand
       
       'Disable Close menu.
       c.Enabled = False
    End Function
    					
  9. Op deFoutopsporingmenu, klik opNoordenwind compileren. Als het project is gecompileerd, corrigeer de compilatiefouten en vervolgens het project opnieuw compileren.
  10. Op deBestandmenu, klik opNoordenwind opslaan, en gebruik de standaardnaam die wordt weergegeven in deModulenaamvak door te klikken opOK.
  11. Een nieuwe macro maken met de volgende acties en argumenten:
       Action
       -------
       RunCode
    
       Action Arguments
       -------------------------------
       Function Name: InitApplication()
    					
  12. Sla de macro en de naam Autoexec.
  13. Sluit de database.
  14. Open de database opnieuw.
Merk op dat deSluitenknop en deSluitenin deSysteemmenu van het toepassingsvenster uitgeschakeld.

Gebruik

De klassemodule CloseCommand die in dit artikel wordt beschreven, kunt u eenvoudig inschakelen of uitschakelen hetSluitenknop en deSluitenopdracht van het toepassingsvenster. De klassemodule kunt u de status van deze opdrachten om te bepalen of ze zijn momenteel ingeschakeld of uitgeschakeld. Voordat u een van deze manieren moet uw code eerst een instantie van de klasse CloseCommand maken zoals in de functie InitApplication eerder in dit artikel.

Controleer de status van deSluitenknop, raadpleegt u deIngeschakeldeigenschap van de CloseCommand-instantie gemaakt van uw code. Evenzo instellen van de status van deSluitenknop, toewijzenTrueofFalseom deIngeschakeldeigenschap van de CloseCommand-instantie gemaakt van uw code.

Opmerking Deze techniek beïnvloedt deSluitenknop op het toepassingsvenster van Microsoft Access niet deSluitenknop in het databasevenster. Na het uitschakelen van deSluitenknop de knop wordt niet automatisch opnieuw ingeschakeld wanneer de database wordt gesloten. Als de gebruiker de database sluit en Microsoft Access openen verlaat, de gebruiker kan niet worden Microsoft Access afsluiten met behulp van deSluitenknop. In dit geval de toepassing moet opnieuw deSluitenknop voordat deze wordt beëindigd. Anders heeft de gebruiker Microsoft Access opnieuw starten om deSluitenom te worden ingeschakeld.

Deze techniek niet uitschakelen hetAfsluitenin deBestandmenu. Als uw toepassing deze opdracht uitschakelen moet, moet u aanpassen deBestandmenu verwijderen van deAfsluitenopdracht.

Eigenschappen

Artikel ID: 258049 - Laatste beoordeling: dinsdag 1 maart 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Access 97 Standard Edition
Trefwoorden: 
kbhowto kbmt KB258049 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:258049
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com