konto usunięte

Temat: Zablokowanie zamykania programu Access 2016 przez "X"

Cześć,
czy ktoś wie w jaki sposób zablokować przycisk zamykania programu Access 2016?
Znalazłem w necie rozwiązanie dla 2010, ale coś nie działa:
http://databasefaq.com/index.php/answer/149735/access-...
Ktoś, coś pomoże?
Z góry dziękuję.
Robert

Temat: Zablokowanie zamykania programu Access 2016 przez "X"

Witam,
Żeby zadziałało to trzeba zrozumieć co zaprezentowany kod daje.
Zastosowana zmienna tymczasowa przechowuje wartość prawda/falsz czy można zamknąć formularz.

Podane rozwiązanie jest dość ogólnikowe. Podany jest sposób jak zablokować zamknięcie ale przecież w końcu można by ten form lub aplikację zamknąć.

Moje pytanie jest następujące: Czy zostało zaimplementowane tworzenie zmiennej w momencie np. otwarcia formularza?
Tomasz Gryzio

Tomasz Gryzio Dyrektor
zarządzający/Trener/
Konsultant - It
School

Temat: Zablokowanie zamykania programu Access 2016 przez "X"

Witam,

Proszę bardzo:
- procedura wyłączająca to: CloseDisable
- procedura włączająca to: CloseEnable


Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal wRevert As Long) As Long
Private Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long


Public Sub AccessCloseButtonEnabled(pfEnabled As Boolean)
' Comments: Control the Access close button.
' Disabling it forces the user to exit within the application
' Params : pfEnabled TRUE enables the close button, FALSE disabled it
' Owner : Copyright (c) FMS, Inc.
' Source : Total Visual SourceBook
' Usage : Permission granted to subscribers of the FMS Newsletter

On Error Resume Next

Const clngMF_ByCommand As Long = &H0&
Const clngMF_Grayed As Long = &H1&
Const clngSC_Close As Long = &HF060&

Dim lngWindow As Long
Dim lngMenu As Long
Dim lngFlags As Long

lngWindow = Application.hWndAccessApp
lngMenu = GetSystemMenu(lngWindow, 0)
If pfEnabled Then
lngFlags = clngMF_ByCommand And Not clngMF_Grayed
Else
lngFlags = clngMF_ByCommand Or clngMF_Grayed
End If
Call EnableMenuItem(lngMenu, clngSC_Close, lngFlags)
End Sub

Sub CloseDisable()
Call AccessCloseButtonEnabled(False)
End Sub

Sub CloseEnable()
Call AccessCloseButtonEnabled(True)
End Sub

konto usunięte

Temat: Zablokowanie zamykania programu Access 2016 przez "X"

Wracam z tematem. Może komuś się przyda.
Mając formularz, który odpala się automatycznie po odpaleniu bazy, np. takie menu główne, wystarczy umieścić w nim takie kody:

Private Sub Form_Activate()
Application.TempVars.Add "blnEnableClose", True
End Sub
-------------------------------------------------------------------------------------------------------------------------
Private Sub Form_Deactivate()
Application.TempVars.Add "blnEnableClose", False
End Sub
-------------------------------------------------------------------------------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
If Application.TempVars!blnEnableClose = False Then
Cancel = True
Else
DoCmd.Quit
End If
End Sub
-------------------------------------------------------------------------------------------------------------------------
Wtedy nie da się wyłączyć Accessa, gdy menu główne nie jest aktywne.
Przetestowałem, działa.
Rozwiązanie nie moje, znalazłem gdzieś w internetach.



Wyślij zaproszenie do