Access - Automatización Word

 
Vista:

Automatización Word

Publicado por Santi (14 intervenciones) el 11/10/2002 21:08:00
Buenas noches a todos:

Dos preguntas:

1) Tengo una un formulario en el que por cada registro que introduzco me genera
automáticamente un documento word. Funciona perfectamente, lo que sucede es que
cuando guardo el nuevo documento creado, se me queda abierta una instancia de
Word. Lo grave es que esto ocurre para cada documento: si introduzco 20 registros
se me quedan abiertas 20 instancias de Word...

¿cómo puedo cerrar al mismo tiempo todas las instancias de Word que tengo
residentes en memoria?

2) Al entrar y/o al salir del formulario me aparece el error 462 (\"El equipo
servidor remoto no existe o no esta disponible\"). Lo curioso del caso es que una
vez funciona y la próxima vez que entro o salgo del formulario no.

¿cómo puede evitar que aparezca el error 462?

Un saludo,

Santi
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

Automatización Word

Publicado por Alejandro (4142 intervenciones) el 24/04/2023 19:49:16
Hola Santy.

Aquí te dejo algunas soluciones a tus dos preguntas:

1) Para cerrar todas las instancias de Word que se quedan abiertas después de generar los documentos, puedes usar el siguiente código en el evento "Al hacer clic" del botón que genera los documentos:

1
2
3
4
5
6
7
8
Dim objWord As Object
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
Do While Not objWord Is Nothing
    objWord.Quit SaveChanges:=False
    Set objWord = Nothing
    Set objWord = GetObject(, "Word.Application")
Loop

Este código busca todas las instancias abiertas de Word y las cierra una por una. La línea "On Error Resume Next" es para ignorar cualquier error que pueda ocurrir al cerrar una instancia de Word.

2) El error 462 se produce cuando intentas establecer una conexión con una instancia de objeto remoto que ya no está disponible. Para evitar este error, puedes intentar añadir una verificación previa de si la instancia del objeto remoto está disponible antes de intentar interactuar con ella. Puedes hacer esto con el siguiente código:

1
2
3
4
5
6
7
Dim objWord As Object
On Error Resume Next
Set objWord = GetObject(, "Word.Application")
If objWord Is Nothing Then
    Set objWord = CreateObject("Word.Application")
End If
On Error GoTo 0

Este código comprueba si ya hay una instancia de Word abierta. Si no hay ninguna, crea una nueva instancia. La línea "On Error GoTo 0" restablece el manejo de errores normal después de la verificación.

Espero que estas soluciones te ayuden a resolver tus problemas.
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