Visual Basic - Combinar correspondencia

Life is soft - evento anual de software empresarial
 
Vista:

Combinar correspondencia

Publicado por Samuel (7 intervenciones) el 12/04/2008 11:50:42
Hola a todos y muchas gracias por leer este post.

Mi problema es el siguiente:

Desde una aplicación Visul Basic 6.0, combino correspondencia en una plantilla.
El código que utilizo es el siguiente:
'===============================================
Dim appWord As Word.Application
Dim docWord As Word.Document

Set appWord = CreateObject("Word.Application")
Set docWord = appWord.Documents.Open(strRutaArchivo)

docWord.MailMerge.MainDocumentType = wdFormLetters
docWord.MailMerge.OpenDataSource Name:=App.Path & " empPlantillas.mdb"

With docWord
.MailMerge.Destination = wdSendToNewDocument
.MailMerge.Execute False
End With

appWord.ActiveDocument.SaveAs ...
docWord.Close False

Set appWord = Nothing
Set docWord = Nothing
'===============================================
Este proceso no me da ningún problema si utilizo Office 2003, si lanzo el proceso en un equipo que posea un Office 2000 el programa me lanza el error: "Word no pudo abrir el origen de datos"
El error se produce en la instruncción "docWord.MailMerge.OpenDataSource".
Cuando se ejecuta esta instrucción el programa abre la base de datos y posteriormente emite el mencionado error.
El origen de datos que utilizo es una base de datos Access 2000.

Espero que puedan ayudarme.

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:Combinar correspondencia

Publicado por Samuel (7 intervenciones) el 12/04/2008 16:37:35
Hola, muchas gracias por responder.

En el proyecto tengo agregada la referencia a Word 9.0, que es la utiliza el Word del Office 2000.

Voy a probar a quitar la referencia y a declarar la variable de tipo Object como me dices.

Un saludo y 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:Combinar correspondencia

Publicado por Samuel (7 intervenciones) el 14/04/2008 14:01:48
Hola de nuevo a todos.

El sisteme de Combinar correspondencia por código vb 6.0, presenta muchos problemas a la hora de incompatibilidades con las distintas versiones de Office que pueda terer el usuario instalada en el euipo. Por lo tanto he optado por realizar lo siguiente:

En lugar de vincular la plantilla (documento maestro) directamente a la base de datos Access, la vinculo a un documento Word de tipo RTF cumplimentado con los datos obtenidos de la base Access.

Función para crear un fichero RTF con origen de datos Access:
'======================================================
Public Sub CreaRTF(ByVal Ruta As String, ByVal Fichero As String, ByVal var As Integer)
Dim appAcc As Access.Application

Set appAcc = New Access.Application
appAcc.Visible = False

appAcc.OpenCurrentDatabase App.Path & " empFicheroAccess.mdb"

appAcc.DoCmd.OutputTo acOutputTable, "TABLA", acFormatRTF, App.Path & " empFichero.rtf", False

'Combinamos documento (*)
End Sub
'=======================================================

(*): En la función que agregué en el primer post, he cambiado la instrución "OpenDataSource". El resultado final sería el siguiente:

'=======================================================
docWord.MailMerge.OpenDataSource App.Path & " empFichero.rtf"
'=======================================================
Simplemente cambiamos el origen de los datos al nuevo fichero RTF.

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