Foros del Web » Programación para mayores de 30 ;) » .NET »

Combinar correspondencia

Estas en el tema de Combinar correspondencia en el foro de .NET en Foros del Web. Buenas tardes, tengo un pequeño problema, estoy intentando hacer un programa que replique la accion de Microsoft word de 'combinar correspondencia' pero me da un ...
  #1 (permalink)  
Antiguo 18/06/2008, 11:27
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Combinar correspondencia

Buenas tardes,
tengo un pequeño problema,

estoy intentando hacer un programa que replique la accion de Microsoft word de 'combinar correspondencia' pero me da un problema con la base de datos.

Microsoft.Office.Interop.Word._Application objWord;
Microsoft.Office.Interop.Word._Document objDoc;
Microsoft.Office.Interop.Word.MailMerge aMerge;
//'Ejecuta Word y lo deja invisible
objWord = new Microsoft.Office.Interop.Word.Application();
objWord.Visible = false;
objWord.Application.WindowState = Microsoft.Office.Interop.Word.WdWindowState.wdWind owStateMinimize;
//Referencio al documento que quiero combinar
string rutaBaseDatos = @"C:\Documents and Settings\Usuario\Mis documentos\Funciones de interes\PDA\PDA\bin\Debug\Archivos\Datos.mdb";
object consulta = "SELECT * FROM usuario";
object documento = @"C:\Documents and Settings\Usuario\Mis documentos\Funciones de interes\PDA\PDA\bin\Debug\Archivos\Plantilla.dot";
object missing = Type.Missing;
try
{
objDoc = objWord.Documents.Open(ref documento, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
objDoc.ActiveWindow.WindowState = Microsoft.Office.Interop.Word.WdWindowState.wdWind owStateMinimize;
//'Activa el Documento
objDoc.Activate();
//' Inicializamos la variable con la correspondencia de este documento
aMerge = objDoc.MailMerge;
//'le paso la ruta del archivo en excel y luego la cadena de seleccion para
//'combinar la correspondencia
aMerge.OpenDataSource(rutaBaseDatos, ref missing, ref missing, ref
missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref consulta, ref
missing, ref missing);


objWord.Application.ActiveDocument.Fields.Update() ;
aMerge.Destination = Microsoft.Office.Interop.Word.WdMailMergeDestinati on.wdSendToNewDocument;

object destino = @"C:\NuevoDocumento.doc";
objWord.ActiveDocument.SaveAs(ref destino, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
objDoc.Close(ref missing, ref missing, ref missing);
}
catch (Exception error)
{
MessageBox.Show(error.Message);
}


siempre me muestra el mensaje: '
No se puede completar la operacion. Error en el motor de la base de datos o del cuadro de dialogo. Intentelo de nuevo mas tarde'

No se por que puede ser, he probado de todo, y haciendo la operacion directamente con microsoft word, accede correctamente a la base de datos...


por cierto, por si influye es un windows form



un saludo
  #2 (permalink)  
Antiguo 24/06/2008, 03:53
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Combinar correspondencia

Nadie me puede ayudar? :S

he estado investigando y creo que el problema debe de estar en las dll que referencio,

la que yo uso esta en COM y se llama Microsoft Office Word Object Library 11' y no se si es que para tener esa dll tengo que tener alguna version concreta de Office...
yo tengo la del 2003
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:08.