'Ejemplo posteado por Eva 'Proposito: Inutilizar el boton Cerrar de la ventana 'madre' de Access 'El siguiente código iría en un módulo Option Explicit 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& Public 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 '======================================== 'Para llamar a esta funcion, se puede hacer desde cualquier 'formulario y cualquier evento. 'Si yo deseo que nada mas arrancar la aplicacion, se me inutilice 'el botón cerrar de Access, creo un formulario de inicio a mi aplicacion 'y en el evento Open del formulario de Inicio pongo: Private Sub Form_Open(Cancel As Integer) EliminaBotonCerrar Me End Su 'Con esto aseguramos que el usuario no puede cerrar la ventana 'principal de Access con el X 'Como dato curioso, decir, que el Bhuo, estuvo jugando con este codigo 'y descubrio que si se hace la siguiente llamada: Private Sub Form_Open(Cancel As Integer) EliminaBotonCerrar Me EliminaBotonCerrar Me EliminaBotonCerrar Me End Su 'O sea, tres veces, además, queda inutilizado el botón Minimizar de la ventana Madre de Access