Leer código de barras de DNI desde visual basic 2019

Soy de Perú y acá en mi país utilizamos un Documento Nacional de Identidad conocido como DNI, mencionarles que ese DNI trae consigo un código de barras de números 8 dígitos que es único y no repite con ningún otro DNI.

Bueno, lo que deseo hacer es lo siguiente:

Tengo un formulario en Visual Basic 2019 y en el Tengo una caja de texto para capturar el contenido del código de barras, ese código deberá ser leído a través de un aparato que lee códigos de barras y está conectado a mi pc vía usb..

Ahora bien, como puedo hacer para que la caja de texto acepte datos únicamente que provienen del lector de código de barras más no permita ingresar tipear del teclado?

De esa manera sea necesario contar con el DNI en físico y un lector de código de barras...

¿Eso es posible?

Estaré muy agradecido por su ayuda

Muchas gracias. Saludos🤗

3 respuestas

Respuesta
2

Si no te quieres calentar la cabeza, basta con que en las propiedades de ese cuadro de texto, en el evento Al bajar una tecla, entre Private Sub... y End Sub pongas

Keycode=0

Así, cuando el cursor llegue a dicho cuadro, pulses la tecla que pulses no hará nada.

Respuesta
2

Al menos si es en Access NO puede utilizar Al bajar una tecla Keycode=0, porque también se bloquea el escáner, tenga en cuenta que en VBA el escáner se comporta como un teclado.

Para los que les gusta investigar NO copiar encontré este código lo he probado y funciona en Access.

Public FirstInput As Date
Private Sub Text0_GotFocus()
FirstInput = Empty
End Sub
Private Sub Text0_KeyUp(KeyCode As Integer, Shift As Integer)
Dim TimeDiff As Integer
'Procedure uses first keystroke to start timing, and every subsequent keystroke compares
'to the first, and if more than 1 second has elapsed, warns user to use the scanner and resets field.
'tabbing away or back to the field resets the timer. Tabbing off the field or hitting enter to move to
'the next field will not be counted as keystrokes.
If KeyCode <> 9 And KeyCode <> 13 Then
If FirstInput = Empty Then
FirstInput = Now()
Else
TimeDiff = DateDiff("s", FirstInput, Now())
End If
If TimeDiff > 1 Then
MsgBox ("Please scan in using the attached scanner")
Text0.Text = Empty
FirstInput = Empty
End If
End If
End Sub
Private Sub Text0_LostFocus()
FirstInput = Empty
End Sub
Respuesta
1

I. Hola Adán, por mi parte no poseo formación en VB o Excel, pero con su permiso deseaba trasladarle la información sobre su consulta que tuve la fortuna de ver cercana a esta incidencia por si pudiese serle de alguna utilidad mientras le atiende un experto de primera mano, lamento la imprecisión y molestias de lectura,

https://stackoverflow.com/questions/50464858/allow-only-barcode-scanner-and-eliminate-keyboard-input 

https://stackoverflow.com/questions/19871583/automatically-send-barcode-scanner-input-to-textbox-vb-net-winforms 

https://stackoverflow-com.translate.goog/questions/14134126/how-to-read-input-from-a-barcode-scanner-in-vb-net-without-using-a-textbox?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://stackoverflow.com/questions/42900327/how-to-read-an-input-from-a-barcode-scanner-and-display-into-a-textbox 

https://intalentia.com/wp-content/uploads/2013/11/Visual-Basic.pdf 

https://www.youtube.com/watch?v=YsrVKJTUgU0 

https://www.youtube.com/watch?v=PVGQ_n8YH1E 

https://social.msdn.microsoft.com/Forums/es-ES/670f3b63-96ed-4ef5-8607-16f890be9820/introducir-datos-a-textbox-desde-un-lector-de-codigo-de-barras-pero-bloqueando-el-teclado?forum=vcses 

https://www-codeproject-com.translate.goog/Questions/1279175/Reading-barcode-with-barcode-reading-without-textb?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://www-vbforums-com.translate.goog/showthread.php?897061-RESOLVED-Check-if-a-barcode-scanner-is-launched&_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

https://social-msdn-microsoft-com.translate.goog/Forums/vstudio/en-US/46958af1-2452-4c36-be1d-a16f43446cc5/using-a-barcode-reader-on-a-vbnet-application?forum=vbgeneral&_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=sc 

Un experto de otra página comentó lo siguiente, sólo deseaba dejárselo a modo de curiosidad, mucha suerte y ánimo.


Hacer este trabajo es muy sencillo, lo que hace el lector de código de barras es simular la entrada por el teclado, cada vez que el lector scanea un código produce un string de entrada numérico, por lo general, gran longitud, por ultimo ingresa un retorno de carro. Es lo mismo que si ingresaras el código desde el teclado y le das enter.
Posiblemente es que no tienes nada programado en el evento keypress del text box que seria lo siguiente

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then '13 es el valor ascii del enter
'aqui va todo lo que quieres que haga el programa una vez que
'captura el codigo
End If
End Sub
Yo lo hize con la tecla enter, pero tu prueba hacerlo con el tab
El codigo de la tecla tab es es siguiente: 9

PD, Julián, disculpe de nuevo, tardo mucho y al no refrescar la página en otra pestaña, cuando llegan respuestas no las veo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas