Imprimir rtb

Y GRACIAS POR TU AYUDA HA FUNCIONADO DE MARAVILLA EL COMANDO 'highlightwords' en access pero ahora lo que me pasa es imprimir el contenido del rtb desde un botón de comando en access COMO SABRÁS EN Visual Basic 6 me sale sin problemas pero en access me sale error...
Tengo lo siguiente:
Private Sub Comando_Click()
On Error GoTo ErrorDeImpresion
Printer.Print ""
RichTextBox1.SelPrint Printer.hDC
Printer.EndDoc
Exit Sub
ErrorDeImpresion:
Exit Sub
End Sub
Pero me sale el siguiente error:
Error de compilación:
No se encontró el método o el dato miembro
Y me subraya .hdc...
Como podría solucionarlo para que rule en access...

1 respuesta

Respuesta
1
Otra vez:
A ver aquí si hay un problema, ya que el objeto Driver en Access es más restringido, el error que te sale es por que NO EXISTEN los métodos hDc, ni EndDoc... como te dije ya que este objeto no tienes todas las propiedades nio eventos que en Vb...
Bueno se que no necesitas cual es el problema, sini soluciones te pido que me dejes pensar un poco ya que creo que debemos recurrir al Api para hacer esto... no veo otra...
No Finalices esta pregunta, hasta que te mande una respuesta, no te preocupes tratare de no demorarme.
Att:TELEMACO(OSCAR)
Disculpa la demora:
He estado un poco ocupado pero bueno,...
Te comentaba que el Objeto Driver en Access es más cerrado que el que se utiliza en VB... entonces...
Inserta un Objeto CommonDialog en el formulario Referencia:(Microsoft Common Dialog Control, version 6.0)..(yo lo llame CDG)...
Private Sub Comando1_Click()
On Error GoTo ErrorDeImpresion
*****************************
CDG.Flags = cdlPDReturnDC + cdlPDNoPageNums
CDG.Flags = CDG.Flags + cdlPDSelection
RichTextBox0.SelPrint CDG.hDC
Exit Sub
ErrorDeImpresion:
MsgBox Err.Description
Exit Sub
End Sub
***************************
Att:TELEMACO
Hola y gracias por contestar... en referencia a lo ultimo bien cuando lo ejecuto es decir pulso en el botón de comando para la impresión me sale el error "HDC no válido"... como se podría solucionar este error...
GRACIAS, un saludo
Primero revisa la referencia la referencia del Common Dialog es:
Microsoft Common Dialog Control, version 6.0
Ojo con la version...
Ahora, debo recordarte que esta referencia es propia de Vb, al igual que el Rich Text Box... es decir tuvo que haberse instalado Vb, para que funcione, ahora si con todo esto no te soluciona nada, entonces instala el Service Pack de Visual Basic el 6.0 o uno ultimo.
Me avisa como te fue, sino te sigo ayudando.
Att:TELEMACO
Y fresco, no hay problema... dejame pensar en otra solución y te la envío. Ok
Att:TELEMACO
Bien, hola de nuevo... y perdona por dar tanto la lata...
He instalado el service pack 6 para visual studio 6 que es el que tengo instalado y también el service pack 2 para office 2003 pero me sigue dando el mismo error "HDC no válido"... se te ocurre alguna otra solución...
GRACIAS, un saludo desde Tenerife...
Disculpa mi demora, pero espero tenerte eso para el jueves, me quede sin equipo gracias a mi disco, pero espero tenerlo para esa fecha.
Ya solucione lo de mi equipo:
A ver: Te mando un código que encontré, crea un modulo sino lo tienes y colo esto en el:
**************************
'---------------------------------------------------------
'
' PrintFile
'
' Código escrito originalmente por Francisco Javier García
' Aguado (Búho)
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
' [email protected]
'
' Este código se brinda por cortesía de
' Francisco Javier García Aguado (Búho)
'
Private 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
Private 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
Private Const SW_HIDE = 0 '&
Private Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
' función que imprime un documento de cualquier aplicación
Public Function PrintFile(FileName As String) As Variant
Dim RetVal As Long
Dim sError As String
Dim LenMsg As Long
' se manda imprimir el documento
RetVal = ShellExecute(0&, "print", FileName, 0&, vbNullString, SW_HIDE)
' si se ha producido algún error
If RetVal < 33 Then
sError = Space(1024)
' obtenemos el mensaje de error que manda el sistema
LenMsg = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, ByVal 0&, RetVal, 0&, sError, Len(sError), 0&)
' devolvemos el mensaje de error
PrintFile = Left(sError, LenMsg - 1)
Else
' la función tuvo éxito
PrintFile = True
End If
End Function
**************************
Luego en el formulario del RichTextBox:
***********************
Private Sub Comando1_Click()
Dim NombreArchivo As String
On Error GoTo ErrorDeImpresion
NombreArchivo = CurrentProject.Path & "\TempoTexto.doc" 'Lo puedes cambiar por txt, si quieres
Open NombreArchivo For Output As #1 ' Abre el archivo.
Print #1, RichTextBox0.SelText ' Escribe la cadena de caracteres en el archivo.
Close #1 ' Cierra los 3 archivos abiertos.
PrintFile NombreArchivo
Kill NombreArchivo
Exit Sub
ErrorDeImpresion:
MsgBox Err.Description
Exit Sub
End Sub
****************************
Me avisas como te va:
Att:TELEMACO
Hola, de nuevo... ¿qué tal? Bien con respecto a tu solución pues sirve me imprime el richtextbox... PERO PERO... no me imprime tal como se ve, es decir, con los resaltes de algunos contenidos..., es decir, ¿algunos contenidos los tengo en negrita y en color... CÓMO SE PODRÍA SOLUCIONAR ESTO?
GRACIAS POR AYUDARME, un saludo Óscar desde Tenerife... PD: por cierto hace poco que pasaron una telenovela rodada en tu país 'PASIÓN DE GAVILANES'
Disculpa, tienes razón, debemos modificar esta linea:
************************
Open NombreArchivo For Output As #1 ' Abre el archivo.
Print #1, RichTextBox0.SelText ' Escribe la cadena de caracteres en el archivo.
Close #1 ' Cierra los 3 archivos abiertos.
**************************
En vez de SelText, se coloca SelRTF, mira:
*****************************
Open NombreArchivo For Output As #1 ' Abre el archivo.
Print #1, RichTextBox0.SelRTF ' Escribe la cadena de caracteres en el archivo.
Close #1
****************************
Me avisas.
Att:TELEMACO
P.D. Si esa tenenovela fue rodada por aquí, hace rato.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas