Visual Basic para Aplicaciones - problema con mailmerge

Life is soft - evento anual de software empresarial
 
Vista:

problema con mailmerge

Publicado por Fran (4 intervenciones) el 08/05/2007 11:12:21
Hola,

Quiero sacar desde access un documento word usando combinar correspondencia.
Siguiendo algun ejemplo de este foro, tengo la siguiente función:

Sub MAILINEAR(BASEdeDATOS As String, DOCUMENTO As String, consSQL As String)
Dim oApp As Word.Application
Dim oMainDoc As Word.Document

Set oApp = CreateObject("Word.Application")
Set oMainDoc = oApp.Documents.Open(DOCUMENTO)

oApp.DisplayAlerts = wdAlertsNone

With oMainDoc.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=BASEdeDATOS, _
SQLStatement:=consSQL
End With

With oMainDoc
.MailMerge.Destination = wdSendToNewDocument
.MailMerge.Execute pause:=False
End With

oMainDoc.Close False
oApp.Visible = True
Set oApp = Nothing
End Sub

Funciona todo perfecto, excepto que no consigo de ninguna manera que no me pregunte si quiero guardar el documento obtenido, ya que no me interesa para nada guardarlo y sería muy molesto que lo preguntase siempre.

Lo del diplayAlerts no tiene ningún efecto.

Muchas gracias por adelantado.
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:problema con mailmerge

Publicado por cmgcharli (51 intervenciones) el 08/05/2007 13:38:03
oMainDoc.Close (wdDoNotSaveChanges)
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:problema con mailmerge

Publicado por FRAN (4 intervenciones) el 08/05/2007 15:26:41
Gracias por responder.

En cualquier caso no funciona eso.

De hecho, en el código que tenía ya estaba incluida esa sentencia.
(oMainDoc.Close False )
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:problema con mailmerge

Publicado por cmgcharli (51 intervenciones) el 09/05/2007 00:22:14
Vamos a ver cuando abres el documento de combinación y lo ejecutas estas obteniendo otro documento, vale pues bien cuan estas cerrando solo estas cerrando el documento principal de combinación y no el que genera, por otro lado cuando haces Nothing a la variable objeto oApp y cierras el Objeto cierras Word y en consecuencia como hay un documento creado abierto te pregunta si deseas guardar los cambio

cuando as ejecutado el documento principal de combinación el documento activo es el generado por lo que deberias decir
oApp.application.activeDocument.close (wddonotsavechanges) y luego cerrar el docuemnto principal
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:problema con mailmerge

Publicado por FRAN (4 intervenciones) el 09/05/2007 11:09:50
Sí, tienes razón y "oMainDoc.Close False", cierra el documento principal.
pero si pongo lo de
oApp.application.activeDocument.close (wddonotsavechanges),
el documento obtenido en el mailmerge, se cierra y no se ve.
Lo del nothing a oApp, parece que no tiene ningun efecto de cara al usuario, se ponga o no.

Lo que tendría que ser es que se viese abierto el documento obtenido, pero al cerrar el usuario éste (bien cerrando el propio documento o bien, cerrando el word que lo contiene), que no preguntase si queremos guardar el documento ya que, nunca vamos a querer guardarlo y puede ser muy molesto que continuamente lo pregunte.

Muchas gracias en cualquier caso.
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:problema con mailmerge

Publicado por cmgcharli (51 intervenciones) el 09/05/2007 18:06:07
Pues en es caso salvale siempre con el mismo nombre previamente a presentarlo al usuario, yo en una situación parecida lo que hago es que siempre que genera un documento de combinación previamente hago lo siguiente:

1-Busco si existe en mi ruta predeterminda un documento llamado RESUELTO.DOC
2- Si este esta abierto lo cierro
3- Una vez Cerrado lo elimino
4- Guardo el documento generado por combinación con el nombre de RESUELTO .DOC
5- Por ultimo segun la necesidad lo presento abierto o dejo que sea el usuario el que lo abra.

Por otro lado si el documento RESUELTO.DOC esta cerrado no hace falta eliminarlo se puede guardar siempre con ese nombre

De esta manera una vez salvado sino se hacen cambios al cerrarlo Word no preguntara si el usuario desea guardar o no.
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:problema con mailmerge

Publicado por Fran (4 intervenciones) el 10/05/2007 15:49:27
Si, seguramente esa solución que presentas funciona, pero quizás me puede dar algún problema en mi caso: Por ejemplo, el usuario podría generar varios documentos distintos y esto obligaría a emplear algún otro sistema para nombrar los archivos creados, a no ser que me conforme con que al abrir uno se cierre el anterior. Es decir, que se va complicando el asunto.

Si estoy obligado a complicarme tanto, me es casi más comodo trabajar con los propios informes de Access.

En cualquier caso, yo buscaba una forma sencilla de hacer que word no pretenda guardar el documento creado. El sentido común dice que tiene que existir, pero vete a saber..

gracias en cualquier caso, cmgcharli
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