Quitar botón cerrar de access

Necesito cerrar access desde un botón para que valide al usuario, para ello necesito quitar el cerrar access en la POR de access mismo

2 respuestas

Respuesta

José: Como "quitar", lo ignoro, lo que si he hecho en algunas Bases de datos es "Deshabilitarlo"

El código original lo cito, pero lo tengo adaptado a 64 bits.

En un módulo Estándar pones éste Código:

Option Compare Database
Option Explicit
'http://www.fmsinc.com/microsoftaccess/startup/preventclose.asp
'Adaptado a 64 bist por Jacinto Trillo Jareño
#If VBA7 And Win64 Then
        Private Declare PtrSafe Function GetSystemMenu Lib "user32" (ByVal hwnd As LongPtr, ByVal bRevert As Long) As LongPtr
        Declare PtrSafe Function EnableMenuItem Lib "user32" (ByVal hMenu As LongPtr, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
#Else
        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
#End If
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&
#If VBA7 And Win64 Then
        Dim lngWindow As Long
        Dim lngMenu As LongPtr
        Dim lngFlags As Long
#Else
        Dim lngWindow As Long
        Dim lngMenu As Long
        Dim lngFlags As Long
#End If
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

Para desactivarlo >> Call AccessCloseButtonEnabled(False)

Para volverlo a activar >> Call AccessCloseButtonEnabled(True)

Un saludo >> JTJ

Sorry...no funciona

José: Para probarlo antes de sugerírtelo, en un Formulario he creado 2 botones>>

Private Sub BtnQuitaX_Click()
Call AccessCloseButtonEnabled(False)
End Sub

Y otro para habilitarlo:

Private Sub BtnHabilX_Click()
Call AccessCloseButtonEnabled(True)
End Sub

Me funciona en ambos casos: Primero no me deja cerrar Access y segundo >> SI

El botón no "desaparece">> Solo se Deshabilita o habilita. Saludos >> JTJ

PD: Si no consigues que funcione, te envío un ejemplo pero he de sacarlo de una Alicación que tiene más cosas.

Aquí tienes el enlace de descarga del ejemplo:

http://www.mediafire.com/file/08il9eyq6fghl4i/DesactivaXAccess.rar/file 

Saludos >> JTJ

Me bloquea el botón para cerrar lo que necesito es que no se pueda cerrar desde el de arriba, no del formulario, sino Access mismo

No hablo del Formulario>> Estoy hablando desde la POR (Botón) de Access, que en el ejemplo que te acabo de enviar funciona. Saludos >>JTJ

Quizá lo estoy colocando en el lugar equivocado...lo puse al cargar...en el formulario que te copie en la foto

¿Lo has probado en Open?

Si es que tu Access es 32 bits, también puedes ver éste ejemplo de Jeffeson>>

https://sites.google.com/site/jjjt1973/Home/ocultar-el-boton-cerrar-y-desactivar-el-boton-minimizar-en-access-2007 

Saludos >> JTJ

Respuesta

Escríbame a [email protected] y le suministro un ejemplo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas