Access - Desabilitar Control CERRAR de Access 2000

 
Vista:

Desabilitar Control CERRAR de Access 2000

Publicado por Salomon (152 intervenciones) el 13/01/2006 13:18:16
Me urge saber como puedo desabilitar el control CERRAR de Access, no el del Formulario
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Desabilitar Control CERRAR de Access 2000

Publicado por Enrique (1299 intervenciones) el 13/01/2006 18:32:22
Salomon, explica con más detalle que entiendes por "Control Cerrar de Access" porque Access se puede cerrar de dos formas, una pulsando la X de la esquina superior derecha en la ventana de base de datos y otra con la opción Salir del Menú Archivo. Pero no creo que quieras deshabilitar estas opciones, porque caso de que pudiera hacerse, que lo dudo, ya solo se podría salir desde un Formulario con DoCmd.Quit y eso no lo veo lógico. Seguramente te refieras a otra cosa.
Lo que si podría decirte es como deshabilitar el botón Cerrar ( X ) del Formulario de Inicio de la Aplicación (el que se establece en Herramientas - Inicio - Mostrar Formulario/Página) que se autoejecuta al abrir la mdb. No sé si sabrás que pulsando ese botón, no solo se cierra el Formulario de Inicio sino que tambien se cierra la base de datos y con una función que conozco, se puede impedir.

Bien, tu dirás.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Desabilitar Control CERRAR de Access 2000

Publicado por Salomon (152 intervenciones) el 16/01/2006 16:09:15
Gracias Enrrique, pero me refiero al (X) de Access. Si estando abierto mi formulario pulsan sobre el control (X) de Access, se cierra el programa sin control. Necesito poder controlar la salida de Access, y por ello necesito poder desabilitar este control. Seguro que hay una forma de hacerlo, lo que no se es como.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Desabilitar Control CERRAR de Access 2000

Publicado por Enrique (1299 intervenciones) el 16/01/2006 18:04:02
Hola Salomon:
Si se puede hacer lo que dices, pero es necesario utilizar un formulario de Inicio, tal como te expliqué en mi mensaje anterior. Pega todo este código sin cambiar nada en la ventana de código de dicho formulario, cierras la mdb y cuando la vuelvas a abrir verás como ya no puedes salir pulsando el botón X de Access, ni desde los formulario ni desde la ventana de base de datos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
' Sección de Declaraciones :
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&
' Fin Sección de Declaraciones
 
' Evento al Cargar :
Private Sub Form_Load()
DoCmd.Maximize
EliminaBotonCerrar Me
End Sub
 
' Evento que desactiva el botón ( X ) que se llama desde Form_Load :
Private Sub EliminaBotonCerrar(Frm As Form)
Dim WinWnd As Long, Ret As String, RetVal As Long, lpClassName As String
    WinWnd = Application.hWndAccessApp
    If WinWnd = 0 Then MsgBox "Couldn't find the window ...": Exit Sub
    Dim hSysMenu As Long, nCnt As Long
    hSysMenu = GetSystemMenu(WinWnd, False)
   If hSysMenu Then
        nCnt = GetMenuItemCount(hSysMenu)
       If nCnt Then
            RemoveMenu hSysMenu, nCnt - 1, MF_BYPOSITION Or MF_REMOVE
            RemoveMenu hSysMenu, nCnt - 2, MF_BYPOSITION Or MF_REMOVE
            DrawMenuBar Frm.hwnd
        End If
    End If
End Sub
-----------------------------------------------------------------------------------------------------------
Fíjate que hay una parte de código que vá en la Sección de Declaraciones y luego dos Procedimientos de Evento.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar