Tengo en una tabla un campo de objeto ole que esta vinculado a un documento de word de 4 páginas. Como puedo desarrollar una macro que me imprima dicho documento de word. Hasta ahora a través de un informe he podido abrir dicho documento e imprimirlo pero solo la primera página. Gracias.
Te recomiendo que uses la instrucción Shell desde código VB, según la siguiente estructura (obtenido de la ayuda) Especificando un 1 como el segundo argumento, se abre la aplicación en tamaño normal y recibe el foco. Suponiendo que tengas el programa Word en C:\Program Files\Microsoft Office\Office, y tu documento se llama Midocumento.doc entonces será: Dim RetVal RetVal = Shell("C:\Program Files\Microsoft Office\Office\WINWORD.EXE Midocumento.doc", 1) (Todo el texto va seguido, sin roturas de líneas) Luego puedes desarrollar una macro en Word, de modo que se imprima automáticamente al ser abierto (AutoOpen), o bien añadir a la sentencia RetVal la sentencia que imprime el dicumento.
Gracias solomon, pero tengo 800 registros vinculados con 800 documentos word diferentes y me seria mucho más fácil poderlo hacer directamente desde una macro según el registro escogido. Un saludo.
En ese caso, te recomiendo usar la instrucción Application. En el ejemplo que te adjunto (que puedes asociar a la pulsación de un botón, por ejemplo), verás como se manda imprimir un documento llamado MiDocumento.doc, situado en la carpeta C:\DocumentosWord Las sentencias que tienen la comilla, puedes activarlas si quieres ver ´cómo Word abre el documento y lo activa, pero no es necesario. Private Sub Command0_Click() On Error GoTo arrancar Dim MiXl As Object Set MiXl = CreateObject("word.application") 'MiXl.Application.Visible = True 'AppActivate MiXl MiXl.Application.Documents.Open "C:\DocumentosWord\MiDocumento.doc" a = MiXl.Application.PrintOut '(, , , "D:\sioplant\luis.doc") MiXl.Documents.Close MiXl.Application.Quit Exit Sub arrancar: MsgBox "Error inexperado nº:" & Err.Number & Chr(10) & Err.Description, vbCritical, "arrancar" Resume Next End Sub Del mismo modo, podrías quitar la comilla de la instrucción PrintOut, si al mandar imprimir desde Access tuvieses abierto algún otro documento Word. Por supuesto, el documento a imprimir que te pongo en este ejemplo, puede (debe) ser una variable que recoge el valor de la tabla que contiene el nombre del documento.