Access - Imprimir con Word un registro de Access sin abrir Word

 
Vista:
sin imagen de perfil
Val: 58
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Imprimir con Word un registro de Access sin abrir Word

Publicado por Alejandro (41 intervenciones) el 14/01/2012 10:21:58
Hola amigos, necesito ayuda.

Tengo una BD de Access con cuyos datos elaboro informes en Word utilizando la combinación de correspondencia. Para imprimir abro Word y desde este busco el número de registro que deseo sacar por impresora.

Mi pregunta es, puedo desde el formulario de Access, estando posicionado en el registro a imprimir sacar el informe por impresora sin necesidad de abrir Word?

Muchas gracias y un saludo.
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

Imprimir con Word un registro de Access sin abrir Word

Publicado por 2pl (461 intervenciones) el 14/01/2012 13:05:58
No te puedo contestar a tu solicitud porque nunca he utilizado ese metodo, pero si decirte que si el informe no es algo especial, con access puedes hacer magnificos informes y te lo digo por experiencia que he realizado facturas, informe personalizado del registro activo etc....
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
sin imagen de perfil
Val: 58
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Imprimir con Word un registro de Access sin abrir Word

Publicado por Alejandro (41 intervenciones) el 15/01/2012 08:59:55
Son varios archivos los que utilizo, y access no me sirve para esto, ya que no justifica el texto, y tampoco puedes dar formato a una palabra que forma parte de un bloque de texto en una variable.
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

Imprimir con Word un registro de Access sin abrir Word

Publicado por Julio (1 intervención) el 16/01/2012 18:46:25
En un Módulo crea el procedimiento:
'*******************************************************************************
'* EscribeCadenaEnMarcadorWord
'* escribe el texto pasado como parámetro en el marcador indicado del documento
'* Word abierto en la instancia Word correspondiente
'* Argumentos: strMarcador => marcador en que se insertará la tabla
'* strCadena => texto a escribir
'* uso: EscribeCadenaEnMarcadorWord
'* ESH 31/08/07 20:15
'*******************************************************************************

Function EscribeCadenaEnMarcadorWord(strMarcador As String, strCadena As String) As Boolean

On Error GoTo EscribeCadenaEnMarcadorWord_TratamientoErrores

WordApp.ActiveDocument.Bookmarks(strMarcador).Select
WordApp.Selection.TypeText strCadena

' confirmo que el proceso finalizó correctamente
EscribeCadenaEnMarcadorWord = True

EscribeCadenaEnMarcadorWord_Salir:
On Error GoTo 0
Exit Function

EscribeCadenaEnMarcadorWord_TratamientoErrores:
MsgBox "Error " & Err & " en proc.: EscribeCadenaEnMarcadorWord de Documento VBA: Form_frmPruebas (" & Err.Description & ")", vbCritical + vbOKOnly, "ATENCION"
Resume EscribeCadenaEnMarcadorWord_Salir
Resume Next
End Function ' EscribeCadenaEnMarcadorWord

y en el formulario crea el objeto, la llamada y etc.

Private Sub cmdescrito_Click()
Dim strContrato As String, _
rst As DAO.Recordset, _
strSQL As String



On Error GoTo cmdescrito_Click_TratamientoErrores

DoCmd.Hourglass True

' selecciono la "plantilla"
strPlantilla = CurrentProject.Path & "\Plantillas\<nombreplantilla.doc"
' abro un recordset con los datos del contrato en cuestión
strSQL = "SELECT * from <nombretabla where Id = " & Me!Id & ""

Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
' si tiene datos, abro la "plantilla" de contrato e inserto los datos en sus distintos marcadores

If Not (rst.EOF And rst.BOF) Then

strContrato = CurrentProject.Path & "\Expedientes\" & Me!expediente & "\<nombredocumento>" & rst!expediente & ".doc"
txtFile = strContrato

Set WordApp = CreateObject("Word.Application")
WordApp.Documents.Open strPlantilla


EscribeCadenaEnMarcadorWord "nombremarcador", rst!<dato1>

' Escribe una linea por cada dato que aparece en el documento de Word.

' guardo el documento
WordApp.ActiveDocument.SaveAs strContrato
' ' imprimo el contrato
' WordApp.ActiveDocument.PrintOut , Copies:=3
End If


cmdescrito_Click_Salir:
' cierro todo
CierraRecordsetDAO rst
WordApp.ActiveDocument.Saved = True
FollowHyperlink strContrato
'WordApp.Quit
Set WordApp = Nothing

Close
On Error GoTo 0
DoCmd.Hourglass False
Close

Exit Sub

cmdescrito_Click_TratamientoErrores:
MsgBox "Error " & Err & " en proc.: cmdescrito_Click de Documento VBA: Form_frmContratos (" & Err.Description & ")", vbCritical + vbOKOnly, "ATENCION"
Resume cmdescrito_Click_Salir
End Sub

En la plantilla del documento (que es un documento Word , no plantilla) tienes que introducir los marcadores con su nombre (Insertar - Marcadores)
y ya está. Espero que te sirva de algo
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
sin imagen de perfil
Val: 14
Ha disminuido su posición en 2 puestos en Access (en relación al último mes)
Gráfica de Access

Imprimir con Word un registro de Access sin abrir Word

Publicado por adrian (8 intervenciones) el 02/02/2019 21:10:44
Hola amigo sabes quiero hacer algo similar a esta consulta... pero no se a que te refieres cuando escribes "EscribeCadenaEnMarcadorWord"
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

Imprimir con Word un registro de Access sin abrir Word

Publicado por 2pl (461 intervenciones) el 17/01/2012 08:55:27
Dime tu correo y te envio una BD MDB con un ejemplo.Mi correo es antperlopARROBAono.com
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