AJUDA COM LEITOR DE CODIGO DE BARRAS
AMIGOS
TENHO UM CAMPO CÓDIGO DO CLIENTE COMO NUMéRICO E TAMANHO 5, GOSTARIA DE CAPTURAR O CÓDIGO DO CLIENTE DE UMA ETIQUETA COM CÓDIGO DE BARRAS, MINHA DIFICULDADE ESTàSENDO QUANDO NA CAPTURA PELO LEITOR ELE TRAS 13 DIGITOS E MEU CAMPO é DE TAMANHO 5 ENTÃO ELE SÓ PEGA OS 5 PRIMEIROS NÃÅ¡MEROS DOS 13 TRAZIDOS DO LEITOR, ACONTECE QUE O CÓDIGO DO CLIENTE ESTàENTRE OS 13. TEM ALGUMA MANEIRA DE EU LER ESSE CÓDIGO ANTES EM ALGUM EVENTO POIS PELO KEYPRESS NÃO ESTOU CONSEGUINDO
TENHO UM CAMPO CÓDIGO DO CLIENTE COMO NUMéRICO E TAMANHO 5, GOSTARIA DE CAPTURAR O CÓDIGO DO CLIENTE DE UMA ETIQUETA COM CÓDIGO DE BARRAS, MINHA DIFICULDADE ESTàSENDO QUANDO NA CAPTURA PELO LEITOR ELE TRAS 13 DIGITOS E MEU CAMPO é DE TAMANHO 5 ENTÃO ELE SÓ PEGA OS 5 PRIMEIROS NÃÅ¡MEROS DOS 13 TRAZIDOS DO LEITOR, ACONTECE QUE O CÓDIGO DO CLIENTE ESTàENTRE OS 13. TEM ALGUMA MANEIRA DE EU LER ESSE CÓDIGO ANTES EM ALGUM EVENTO POIS PELO KEYPRESS NÃO ESTOU CONSEGUINDO
O evento KeyUp e executado depois do KeyPress, então vc primerio pega o codigo com o evento KeyPress armazena em variavel e coloca todo a sua rotina no evento KeyUp
Olá amigo, só se estiver fazendo algo errado, mais já no evento keypress ele me retorna somente os 5 primeiros números do código de barras dos 13 lidos, sendo assim preciso antes de mais nada dos 13 completos.
Cara tente algo como assim
Private Variavel As String
Private Sub Form_Load()
Text1.MaxLength = 5
Variavel = ""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
MsgBox Variavel
'Aqui você trata os dados do código
Variavel = ""
Else
Variavel = Variavel & Chr(KeyAscii)
End If
End Sub
Caros colegas,
Talvez eu não esteja entendendo ou não sendo muito claro, minha rotina já está no keypress, o problema está nesse momento pois ao entrar no evento minha variável já está com os 5 primeiros digitos dos 13 capturados pelo leitor, imagine um código de barras capturado pelo leitor de número 7891234512312, quando chego no keypress minha variavel está com número 78912 ou seja, como meu campo é de tamanho 5 ele desconsidera o resto já que o próprio leitor da o ENTER automaticamente. eu preciso pegar esse número completo antes de qualquer coisa.
Talvez eu não esteja entendendo ou não sendo muito claro, minha rotina já está no keypress, o problema está nesse momento pois ao entrar no evento minha variável já está com os 5 primeiros digitos dos 13 capturados pelo leitor, imagine um código de barras capturado pelo leitor de número 7891234512312, quando chego no keypress minha variavel está com número 78912 ou seja, como meu campo é de tamanho 5 ele desconsidera o resto já que o próprio leitor da o ENTER automaticamente. eu preciso pegar esse número completo antes de qualquer coisa.
Pelo que entendi o problema está no seu text que só aceita 5 (caracteres)...
Faça o seguinte: aumente o maxlength do seu text para 13 e lá no evento KeyPress do text vc armazena numa variável o código que precisa(no caso o código do produto), depois é só atribuir no text a variável:
SEGUE EXEMPLO:
Espero ter ajudado.
Faça o seguinte: aumente o maxlength do seu text para 13 e lá no evento KeyPress do text vc armazena numa variável o código que precisa(no caso o código do produto), depois é só atribuir no text a variável:
SEGUE EXEMPLO:
Private Sub Text1_KeyPress(KeyAscii As Integer)
dim lCodProduto as long
If KeyAscii = 13 Then
KeyAscii=0
lCodProduto=mid(text1.text,1,5) 'Aqui vc "pega" o tal código que está no meio
Text1.Text = mCodProduto
End If
End Sub
Espero ter ajudado.
Tópico encerrado , respostas não são mais permitidas