RE:ejecutar consulta al salir
Hola Javier, creo que no se puede ejecutar nada cuando se cierra la aplicación desde la X de la esquina superior derecha de Access, pero si se puede desactivar dicho botón y así no se podrá cerrar Access pulsándolo. Para ello necesitas tener un Formulario de "Inicio" y en la ventana de VBA de este formulario pegas todo esto que sigue sin cambiar nada:
' 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&
Option Explicit
' Evento Al cargar ----------------------------------------------------------------------------------
Private Sub Form_Load()
DoCmd.Maximize
EliminaBotonCerrar Me
End Sub
' Evento Desactiva Botón X ---------------------------------------------------------------------
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
'--------------------------------------------------------------------------------------------------------
Fijate que consta de tres partes: Sección de declaraciones, Evento "Al Cargar" y Evento "EliminaBotonCerrar". Además de en tu botón "Salir", debes poner tambien la ejecución de la consulta en el Evento "Al Salir" del mismo form de Inicio por si cierrran este y de esa forma te aseguras que siempre se ejecutará la consulta al cerrar Access.
Prueba a ver ssi te sale. Saludos
Enrique