Imprimir documento de Word (sin abrir) presionenado boton desde Access

02/10/2015 - 21:13 por sol.matteo.26 | Informe spam
Saludos cordiales: Explico lo que quiero hacer Tengo un formulario con un botón de comando. Lo que quiero hacer es haciendo click en ese botón, que me imprima directamente por la impresora (sin abrir Word) cartas en serie basado en base de datos en acces..
ej. al señor (nombre)
director de (empresa)

desde ya agradezco su tiempo.-

Preguntas similare

Leer las respuestas

#1 Emilio
02/10/2015 - 22:41 | Informe spam
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
inserta el siguiente código en un módulo estándar

#If Win64 Or VBA7 Then
Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As LongPtr
Public Declare PtrSafe Function FormatMessage Lib "kernel32" Alias
"FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId
As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize
As Long, Arguments As LongPtr) As Long
#Else
Public Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
Public Declare Function FormatMessage Lib "kernel32" Alias
"FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId
As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize
As Long, Arguments As Long) As Long
#End If

Public Const SW_NORMAL As Long = 1&
Public Const SW_HIDE As Long = 0&
Public Const FORMAT_MESSAGE_FROM_SYSTEM As Long = &H1000


'******************************************************************************
'* ImprimirArchivo
'* manda a la impresora predeterminada el archivo pasado como parámetro
'* deberá incluir en la sección de declaraciones de un módulo las siguientes
'* #If Win64 Or VBA7 Then
'* Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As LongPtr
'* Public Declare PtrSafe Function FormatMessage Lib "kernel32" Alias
"FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId
As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize
As Long, Arguments As LongPtr) As Long
'* #Else
'* Public Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal
lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String,
ByVal nShowCmd As Long) As Long
'* Public Declare Function FormatMessage Lib "kernel32" Alias
"FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId
As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize
As Long, Arguments As Long) As Long
'* #End If
'*
'* Public Const SW_NORMAL As Long = 1&
'* Public Const SW_HIDE As Long = 0&
'* Public Const FORMAT_MESSAGE_FROM_SYSTEM As Long = &H1000
'*
'* Argumentos: strArchivo => Ruta del archivo a imprimir
'* uso: ImprimirArchivo ("C:\Temp\Fuentes.txt")
'* http://www.mvp-access.es/emilio
'* Si utilizas este código, respeta la autoría y los créditos
'* ESH 10/09/14 18:05
'* ESH 07/08/15 18:40 modificado para trabajar con 64 bytes
'*******************************************************************************

Public Function ImprimirArchivo(strArchivo As String)
Dim lngResultado As Long, _
strError As String * 1024, _
lngMensaje As Long

lngResultado = ShellExecute(hWndAccessApp, "Print", strArchivo, 0&,
vbNullString, SW_HIDE)
' si se ha producido algún error
If lngResultado < 33 Then
' obtenemos el mensaje de error que manda el sistema
lngMensaje = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&,
lngResultado, 0&, strError, Len(strError), SW_HIDE)
' devolvemos el mensaje de error
ImprimirArchivo = Left$(strError, lngMensaje - 1)
Else
' la función tuvo éxito
ImprimirArchivo = True
End If

End Function ' ImprimirArchivo

y llámalo desde el botón tal que así

ImprimirArchivo ("C:\Temp\Fuentes.txt")

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
escribió en el mensaje de
noticias:

Saludos cordiales: Explico lo que quiero hacer Tengo un formulario con
un botón de comando. Lo que quiero hacer es haciendo click en ese botón, que
me imprima directamente por la impresora (sin abrir Word) cartas en serie
basado en base de datos en acces..
ej. al señor (nombre)
director de (empresa)

desde ya agradezco su tiempo.-
Respuesta Responder a este mensaje
#2 sol.matteo.26
02/10/2015 - 23:43 | Informe spam
El viernes, 2 de octubre de 2015, 16:13:12 (UTC-3), escribió:
Saludos cordiales: Explico lo que quiero hacer Tengo un formulario con un botón de comando. Lo que quiero hacer es haciendo click en ese botón, que me imprima directamente por la impresora (sin abrir Word) cartas en serie basado en base de datos en acces..
ej. al señor (nombre)
director de (empresa)

desde ya agradezco su tiempo.-



GRACIAS POR TU RESPUESTA PERO LO INTENTE Y NO PUDE REAL IZARLO... CABE ACLARAR QUE SOY INICIAN TE EN ESTO CON EL FIN DE AGILIZAR MI LABOR... PODRIAS SER MAS DETALLADO ASI LO INTETO NUEVAMENTE O SI NO ES MUCHO PEDIR PODRIAS PASARME UN EJEMPLO DE ACCESS CON ESAS CARACTERISTICAS
Respuesta Responder a este mensaje
#3 Emilio
02/10/2015 - 23:48 | Informe spam
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
lo siento pero no puedo detallar mas de lo que ya he hecho, te he explicado
todo lo que has de hacer.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
escribió en el mensaje de
noticias:

El viernes, 2 de octubre de 2015, 16:13:12 (UTC-3),
escribió:
Saludos cordiales: Explico lo que quiero hacer Tengo un formulario
con un botón de comando. Lo que quiero hacer es haciendo click en ese
botón, que me imprima directamente por la impresora (sin abrir Word)
cartas en serie basado en base de datos en acces..
ej. al señor (nombre)
director de (empresa)

desde ya agradezco su tiempo.-



GRACIAS POR TU RESPUESTA PERO LO INTENTE Y NO PUDE REAL IZARLO... CABE
ACLARAR QUE SOY INICIAN TE EN ESTO CON EL FIN DE AGILIZAR MI LABOR...
PODRIAS SER MAS DETALLADO ASI LO INTETO NUEVAMENTE O SI NO ES MUCHO PEDIR
PODRIAS PASARME UN EJEMPLO DE ACCESS CON ESAS CARACTERISTICAS
Respuesta Responder a este mensaje
#4 sol.matteo.26
03/10/2015 - 00:05 | Informe spam
El viernes, 2 de octubre de 2015, 16:13:12 (UTC-3), escribió:
Saludos cordiales: Explico lo que quiero hacer Tengo un formulario con un botón de comando. Lo que quiero hacer es haciendo click en ese botón, que me imprima directamente por la impresora (sin abrir Word) cartas en serie basado en base de datos en acces..
ej. al señor (nombre)
director de (empresa)

desde ya agradezco su tiempo.-



GRACIAS
Respuesta Responder a este mensaje
#5 José Mª Fueyo
06/10/2015 - 15:26 | Informe spam
Hola
No nos comentas que versión de Access utilizas.
Tendrás que automatizar Word desde Access. Aquí puedes encontrar algún ejemplo:
https://support.microsoft.com/en-us/kb/260410

Suerte,
José Mª Fueyo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida