Textbox quede limpio después de ean

Tengo un textbox el cual captura códigos de barra, pero cuando lo captura se queda el código de barras allí, y me toca con el mouse iluminar y borrar, ¿cómo hago para que se borre y se quede esperando otro ean o código de barras para leerlo?,,, y así leer consecutivamente, y no tener que borra con el mouse..

Muchas Gracias. Luis Por la atención.

1 Respuesta

Respuesta
1

Con respecto a tu dificultad, seria bueno saber si tu form, mejor dicho tu textbox al recibir el valor del código de barra escaneado, hace algo mas.. si ejecuta algún proceso en algún evento programado.

En principio. Sin los datos que te consulto, te podría servir un setfocus a textbox. Esto podría ser en ele evento Keypress, por lo general el scanner, manda el valor de la tecla enter (ascii = 13) luego de leer el código de barra.

Aparte del setfocus, tendrías que agregar lineas en el evento gotfocus del textbox, por ejemplo:

'-------------------------------------------

private sub text1_keypress(Keyascii as integer .. . . ... .. .)

if keyascii = 13 then text1.setfocus

end sub

private sub text1_Gotfocus()

text1.selstart = 0

text1.sellenght = len(text1.text)

end sub

'-------------------------------------------

Este código hará que apenas el texbox gane el foco, auto-seleccione el contenido del mismo, y al escribir tan solo 1 dígito o escanear nuevamente un código de barra, este se sobre escribirá, lo que ya hace innecesario borrar el contenido del mismo previamente.

Muchas Gracias por tu ayuda.

Si, cuando en el textbox, que lo llame tEan, recibe el código de barras, debe de ir a la base de datos que la tengo en la hoja 2, para consultar si existe o no, para traer la información al formulario en otros textbox que son

ean, refrerencia, descripción, cliente, y cantidad,

cuando lee un ean igual los va sumando el cantidad

Pero cuando leo el ean, se va para el botón añadir. abajo esta el código

Ese seria en procedimiento. te lo muestro.

El tEan hace un procedimiento

Private Sub tEAN_Change()


ActualizarDatos
tEAN.SetFocus
cAñadir_Click
End Sub

ub ActualizarDatos()
If lNumProductos > 0 Then
If tEAN <> "" Then
Label13 = ""
Label14 = ""
Label15 = ""
'Buscamos los datos del producto
For lNum = 2 To lNumProductos + 1
If CStr(Hoja2.Cells(lNum, 1)) = tEAN Then
Label13 = Hoja2.Cells(lNum, 2)
Label14 = Hoja2.Cells(lNum, 3)
Label15 = Hoja2.Cells(lNum, 4)
TextBox1 = Application.WorksheetFunction.Sum(Range("f5:f200")) + 1
Exit For
End If
Next
If Label13 = "" Then
txtInfo = "No existe este producto."
Else
txtInfo = "Producto encontrado."
End If
End If
End If
End Sub

Private Sub cAñadir_Click()
Dim lNum As Long
Dim bEncontrado As Boolean
Dim lFilaEncontrada As Long
If Label13 <> "" Then
'Miramos si existe el EAN en esta caja
For lNum = lNumUltimaLinea + 5 To 5 Step -1
If CLng(Hoja1.Cells(lNum, 1)) = lCajaActual And CStr(Hoja1.Cells(lNum, 2)) = tEAN Then
bEncontrado = True
lFilaEncontrada = lNum
Exit For
End If
If CLng(Hoja1.Cells(lNum, 1)) < lCajaActual Then
Exit For
End If
Next
If bEncontrado Then
'Sumamos +1 en las unidades
Hoja1.Cells(lFilaEncontrada, 1) = lCajaActual
Hoja1.Cells(lFilaEncontrada, 2) = tEAN
Hoja1.Cells(lFilaEncontrada, 3) = Label13
Hoja1.Cells(lFilaEncontrada, 4) = Label14
Hoja1.Cells(lFilaEncontrada, 5) = Label15
Hoja1.Cells(lFilaEncontrada, 6) = CLng(Hoja1.Cells(lFilaEncontrada, 6)) + 1
Else
lNumUltimaLinea = lNumUltimaLinea + 1
Hoja1.Cells(lNumUltimaLinea + 5, 1) = lCajaActual
Hoja1.Cells(lNumUltimaLinea + 5, 2) = tEAN
Hoja1.Cells(lNumUltimaLinea + 5, 3) = Label13
Hoja1.Cells(lNumUltimaLinea + 5, 4) = Label14
Hoja1.Cells(lNumUltimaLinea + 5, 5) = Label15
Hoja1.Cells(lNumUltimaLinea + 5, 6) = 1
End If
End If
End Sub

En lo que me puedas ayudar te lo agradeceria

Considero que deberías de agregar el código que te cite en mi 1ra. Rpta.

Probarlo y a ver que tal va, aunque con un ligero cambio

Te sugiero que comentes el código de que esta en el evento change del textbox.

Y copies ese código en el evento keypress del textbox. Y quedaría mas o menos así:

private sub tEAN_keypress(Keyascii as integer .. . . ... .. .)
if keyascii = 13 then

ActualizarDatos
cAñadir_Click

tEAN.SetFocus

end if
end sub

'para que pase el if. Que valida que el keyascii (valor de la tecla digitada) sea 13 (valor del enter), tu scanner debe estar configurado para que luego de leer el código de barra mande un enter o también llamado salto de pagina.

'Estro se mantiene
private sub tEAN_Gotfocus()
tEAN.selstart = 0
tEAN.sellenght = len(tEAN.text)
end sub

Pruébalo, a ver como queda. Y comentas.

Gracias Carlos por tu ayuda.

Te comento que la macro cuando lee el ean en el texbox ya no se salta al botón añadir.

pero no logro que se borre y quede en foco para recibir el otro ean.

Comentas que debo configurar el lector para que no muestre error ('para que pase el if. que valida que el keyascii (valor de la tecla digitada) sea 13 (valor del enter), tu scanner debe estar configurado para que luego de leer el código de barra mande un enter o también llamado salto de pagina).

como hago esto.Mi lector es un arturito , y no se como hacerlo.

Gracias por tu ayuda y comentarios

La idea del código que te compartí es que el texbox jamas pierda el foco, pero que a cambio el contenido del mismo se autoseleccione, en otras palabras que después de disparar un código de barra el textbox conserve el foco y el contenido se sombree de azulito, en la mayoría de los casos, esto con el objetivo de que a la siguiente lectura sobrescriba, osea reemplaza el contenido del texbox con la nueva lectura.

Lo del lector, no sabría decirte, vi que lo hicieron un par de veces, y para eso se apoyaban en el manual. La config viene ahí también en forma de código de barra. Pero como se hace con exactitud no sabría decirte.

Aunque por defecto ya vienen configurado de esa manera, pregunta, en el caso de tu aplicación luego de disparar el código de barra, ¿este se añade a donde tiene que añadirse o no?

Si tu respuesta es si. Quiere decir que el proceso esta corriendo de manera completa, es decir tu pistola manda también el enter que ejecuta el código en el evento keypress del texbox, otra manera de descartarlo es, abre un block de notas dispara cualquier código de barra y al terminar de leer, en el block de notas debe saltar a la sig. linea osea el efecto del enter.

Saludos, no olvides puntuar y cerrar, o de lo contrario añadir la aclaración que requieras

Carlos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas