Access - ejecutar consulta al salir

   
Vista:

ejecutar consulta al salir

Publicado por javier (15 intervenciones) el 07/10/2009 12:49:34
Hola, necesito ejecutar una consulta cuando se cierra access, ahora mismo tengo un boton salir en el menu principal que cierra la aplicacion y me ejecuta la consulta, pero se puede dar el caso que cierren desde la X de acces, ¿como podria hacer que se ejecute una consulta al cerrar access?

Muchas gracias
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:ejecutar consulta al salir

Publicado por Enrique (1299 intervenciones) el 07/10/2009 16:16:08
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
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:ejecutar consulta al salir

Publicado por javier (15 intervenciones) el 07/10/2009 16:39:21
Hola y muchas gracias, he tocado alguna cosa de tu codigo (para adaptarlo a mis necesidades), del resto de formularios ya tengo oculto el boton cerrar. Funciona perfectamente, de nuevo muchas gracias.
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:ejecutar consulta al salir

Publicado por Jefferson (5 intervenciones) el 07/10/2009 16:53:16
Hola Javier
Saludos Enrique

Perdon que interrumpa, el codigo que te suministro el Maestro Enrique, esta perfecto si solo se va a trabajar con A2003 o inferiores.
Pero si la base es abierta con A2007 el codigo deja de funcionar, pues le faltan mas declaraciones al API de windows

en esta pagina http://sites.google.com/site/jjjt1973/ejemplos-access

revisa el Ejemplo 03) Oculta el Boton Minimizar y Desactiva el Boton Cerrar en Access 2007

Desde Venezuela
Jefferson
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:ejecutar consulta al salir

Publicado por Enrique (1299 intervenciones) el 07/10/2009 17:54:55
Hola Javier y Jefferson:

Si, tal como dices es efectivamente es para Access 2003 o anteriores, tendré en cuenta tu ejemplo cuando lo necesite para el 2007, pués de momento no trabajo con este último.

Saludos a todos y gracias Jefferson.

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

RE:ejecutar consulta al salir

Publicado por javier (15 intervenciones) el 07/10/2009 19:13:56
Hola, gracias Jefferson, ahora trabajo con 2003, pero seguro que acabaremos cambiando a 2007, lo tendre en cuenta.

Saludos a los dos
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