-------------------------------------------------------------------------------
¡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:99d9b638-6717-4182-857f-***@googlegroups.com...
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.-