Pregunta: | 5926 - PROBLEMA IMPRIMIR DIRECTAMENTE A LPT! |
Autor: | Jordi Adell |
Hola! Quiero imprimir etiquetas desde VB 6.0, para ello no quiero usar el objeto PRINTER. Los datos que quiero imprimir los recupero de un recordset.
Imprimo directamente a LPT1: con DIM Nombre AS String WITH datos.recordset Nom = "NOMBRE : " & .fields("Nombre").value OPEN "LPT1:" FOR OUTPUT AS #1 PRINT #1, Nom CLOSE #1 Este proceso me falla, al llegar a CLOSE #1, se "cuelga" el programa. He probado con: Nom = CStr("NOMBRE : " & .fields("Nombre").value) Nom = "NOMBRE : " + .fields("Nombre").value Y el resultado es igual, pero si asigno: Nom = .fields("Nombre").value funciona perfectamente. Alguien tiene idea de porqué. Gracias y un saludo a todos. |
Respuesta: | Gerald Valdes |
Tengo dos respuestas con las que podrias probar, una es bien simple y quizas funcione, en vez de utilizar en comando "with" para ahorrarte espacio en la linea:
Nom = "NOMBRE : " & .fields("Nombre").value dale sin "with" el comando completo, total es una sola linea en la que utilizas el "with" y no es tanto el espacio que ahorras, hay veces que ese comando marea el programa, por ejemplo cuando es un "with" anidado, la linea quedaria asi: Nom = "NOMBRE : " & datos.recordset.fields("Nombre").value lo otro que puedes hacer es en vez de dar un open como "LPT:", haz un open a un archivo normal, como por ejemplo open "c:\imp.-_-" for output as #1 asegurandote que que el archivo que creas no sea ninguno ya existente (por eso la extension "-_-") y cuando termines de guardarle los datos y hagas el close lo imprimes utilizando un shell, quedaria algo asi... DIM Nombre AS String *(saca esta linea, no te la recomiendo para un solo comando) *WITH datos.recordset Nom = "NOMBRE : " & datos.recordset.fields("Nombre").value OPEN "c:\impri.-_-" FOR OUTPUT AS #1 PRINT #1, Nom CLOSE #1 shell "type c:\impri.-_- > lpt1" espero que te sirva, chaop nota: si no funciona con lpt1, prueba con prn |