Hi! una pregunta esta clase tambien la podria usar para poder trabajar con los puertos Lpt1: Lptx:
Te comento un poco lo que me pasa, en mi bd guardo en una tabla los puertos por donde quiero que salgan las impresiones que pueden ser por los puertos com y/o los lpt, el hacer la lectura de esos campos y enviar la impresion es simple, el problema lo tengo cuando envio una impresion y la impresora esta apagada o no tiene papel o hay un problema de comunicacion(conexion), ya he visto y probado muchos ejemplos que encuentro en la web, pero al final lo unico que pude hacer fue colocar un "On Local Error GoTo MiError" y mostrar por un block de notas de esta manera
On Local Error Goto mError
Dim rs As ADODB.Recordset
Dim PuertoImp As String
Dim CadCortaTicket As String
Dim CadAbreGaveta As String
'Esto para la impresora Epson TM-U220A Modelo M188A
CadAbreGaveta = Chr(27) + "p" + Chr(0) + Chr(25) + Chr(250)
CadCortaTicket = Chr(27) + "i"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "SELECT *FROM PARAMTICKET", Con, adOpenDynamic, adLockReadOnly
if Not rs.EOF Then
PuertoImp = IIf(IsNull(rs!PuertoTicket), "", rs!PuertoTicket)
Else
PuertoImp = PortDefault
End If
If Trim(PuertoImp) = "" Then
MsgBox "No hay Impresora Configurada. ", vbCritical + vbDefaultButton1, " Error de Impresión"
Exit Sub
End If
DoEvents
nfic = FreeFile
Open PuertoImp For Output As nfic
Print #nfic,"Imprime primera linea"
Print #nfic,"Imprime segunda linea"
'......
'......
Print #nfic,"Imprime n lineas"
Print #nfic, CadAbreGaveta
Print #nfic, Chr(13) + CadCortaTicket
Close nfic
' Aqui es donde le indico que lo muestre por pantalla en un block de notas
mError:
Shell "C:\WINDOWS\notepad.exe " & App.Path & "\abc.txt", vbMaximizedFocus
Se que no es la forma adecuada de solucionar el problema, pero fue lo unico que se ocurrio o tal vez no lo estoy haciendo como deberia de hacerlo.
De antemano muchas gracias por su tiempo, y mil disculpas si no he sido muy claro.
Saludos.