Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2008, 11:27
Altear
 
Fecha de Ingreso: febrero-2008
Mensajes: 69
Antigüedad: 17 años
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