CODIGO DE BARRAS, EM EVENTO TEXTBOX??
Bom dia, pessoal a situaçao é a seguinte, eu estou fazend a leitura de um código de barras através do leitor optico, até ae beleza, faço isso em um textbox, acontece que , tenho um evento que já testei em varios eventos do textbox, lostfous, gotfocus, chenge.etc, e não dá certo, vamos supor que o codigo tem 10 digitos, quando passo, ele adiciona 10 vezes no meu banco de dados, isso quando no chenge, o que eu quero é que, quando ele acabei de fazer a leitura, não sei em qual evento, ele adicionar uma unica vez do INSERT na minha tabela, como se fosse simulado um evento de click...
valeu
Joerbeth
valeu
Joerbeth
amigo isso é sql. não trabalho com sql, mas sei que o poblema não está no text box mas sim no modo que voce codigo que utiliza [Ô]verifique se tem loop[Ô] geralmente ele faz isso.
rsss,assim, quando eu leio codigo de barras,vamos supor que sao 10 digitos ai ele insere 10 vezesm naio tem quye fazer isso, tem que GRAVAR SOMENTE UMA VEZ,
GRATO
GRATO
que tal assim. no keypress da textbox, ele vai adicionando em uma variavel letra por letra, por exemplo:
change:
letras = letras & chr(keyascii)
dai um if, se a quantidade de caracteres daquela string for igual a 10, então adiciona ao banco, dai zera a variavel:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Len(Text1) = 10 Then
MsgBox string1
string1 = [Ô][Ô]
Else
string1 = string1 & Chr(KeyAscii)
End If
End Sub
isso só se o código de barras gerar caractere por caractere né.. eu acho que essa seria a solução mais simples ;p
ou então, um timer checando se o tamanho da text1: Len(text1), for igual a 10 então ele adiciona no banco e limpa a text1..
change:
letras = letras & chr(keyascii)
dai um if, se a quantidade de caracteres daquela string for igual a 10, então adiciona ao banco, dai zera a variavel:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If Len(Text1) = 10 Then
MsgBox string1
string1 = [Ô][Ô]
Else
string1 = string1 & Chr(KeyAscii)
End If
End Sub
isso só se o código de barras gerar caractere por caractere né.. eu acho que essa seria a solução mais simples ;p
ou então, um timer checando se o tamanho da text1: Len(text1), for igual a 10 então ele adiciona no banco e limpa a text1..
mais nesse exemplo ae, ele adiciona uma vez, e fica disponÃvel para o proximo?
o codigo de barras sempre vai ter 10 digitos?
se sim, porque nao usa o len?
if len(text1.text=10) then
se sim, porque nao usa o len?
if len(text1.text=10) then
é faço das palavras do Nicollas as minhas, use apenas o len no evento change mesmo
porém é deste jeito
porém é deste jeito
If Len(Text1.Text) = 10 Then
[txt-color=#007100][ô] aqui vc coloca o codigo para salvar[/txt-color]
End If
Quando você faz a leitura do código de barras, ao final o leitor provavelmente envia um chr(13)
Basta ler se o Text1 recebe o chr(13) para proceder a gravação.
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
[ô]gravar tabela
End If
End Sub
Basta ler se o Text1 recebe o chr(13) para proceder a gravação.
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
[ô]gravar tabela
End If
End Sub
vou testar , mais aproveitando que o topico está aberto, como vcs trabalham com intervalos de horas/minutos? dividindo po 60??, poque assim, eu tenho q fazer uma parada ae, que tpda vez que chegar de 00:30 em 00:30 ele faz um envento, pode ser feito somente assim: somando+30??
valeu
valeu
Citação::
Quando você faz a leitura do código de barras, ao final o leitor provavelmente envia um chr(13)
Basta ler se o Text1 recebe o chr(13) para proceder a gravação.
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
[ô]gravar tabela
End If
End Sub
essa é a melhor forma, assim independente do tamanho do codigo de barras ele vai fazer a leitura, o problema é que ja passou leitores na minha mão que não mandam o chr(13) no final.
Citação::
é faço das palavras do Nicollas as minhas, use apenas o len no evento change mesmo
porém é deste jeitoIf Len(Text1.Text) = 10 Then
[txt-color=#007100][ô] aqui vc coloca o codigo para salvar[/txt-color]
End If
isso mesmo treze, valeu a correção
é eu também ja peguei leitores que não enviam o chr(13), mas é outra opção boa
Tópico encerrado , respostas não são mais permitidas