Access - Problemas al cerrar Llamada a Word desde Access

 
Vista:

Problemas al cerrar Llamada a Word desde Access

Publicado por vluno (1 intervención) el 02/11/2001 14:31:41
Desde una aplicación de Access97 se abre un documento word (con la sentencia Call shell(.......)) este documento tiene correspondencia combianda con otra base de datos auxiliar. Al cerrar el documento Word no se cierra la base de datos auxiliar. ¿Cómo puedo hacerlo?.
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
Imágen de perfil de Alejandro

Problemas al cerrar Llamada a Word desde Access

Publicado por Alejandro (4142 intervenciones) el 19/04/2023 01:32:22
Una posible solución sería utilizar la función API de Windows 'FindWindow' para buscar la ventana de la base de datos auxiliar y luego cerrarla utilizando la función 'SendMessage' con el mensaje 'WM_CLOSE'. Esto se puede hacer desde VBA en Access.

Aquí hay un ejemplo de código que podría funcionar para cerrar la base de datos auxiliar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 
Private Const WM_CLOSE = &H10
 
Sub cerrar_base_datos_auxiliar()
    Dim hwnd As Long
 
    'Busca la ventana de la base de datos auxiliar por el título de la ventana'
    hwnd = FindWindow(vbNullString, "Título de la ventana de la base de datos auxiliar")
 
    'Cierra la ventana de la base de datos auxiliar'
    SendMessage hwnd, WM_CLOSE, 0, 0
End Sub

En el código anterior, reemplaza "Título de la ventana de la base de datos auxiliar" con el título de la ventana de la base de datos auxiliar. De esta manera, cuando se ejecute la función 'cerrar_base_datos_auxiliar()', buscará la ventana de la base de datos auxiliar y la cerrará.

Es importante tener en cuenta que si hay varias ventanas abiertas con el mismo título, la función 'FindWindow' devolverá el identificador de la primera ventana encontrada.
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