CODIGO DE BARRAS, EM EVENTO TEXTBOX??

JOERBETH 19/08/2012 09:54:19
#408153
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
LUIZCARLOS 19/08/2012 12:20:04
#408154
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.
JOERBETH 19/08/2012 14:21:54
#408155
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
KWIIBY 19/08/2012 17:05:30
#408161
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..
JOERBETH 20/08/2012 09:46:19
#408186
mais nesse exemplo ae, ele adiciona uma vez, e fica disponível para o proximo?
NICOLLAS2 20/08/2012 11:17:12
#408194
Resposta escolhida
o codigo de barras sempre vai ter 10 digitos?
se sim, porque nao usa o len?

if len(text1.text=10) then
MARCELO.TREZE 20/08/2012 11:27:38
#408197
é faço das palavras do Nicollas as minhas, use apenas o len no evento change mesmo

porém é deste jeito

If Len(Text1.Text) = 10 Then 
[txt-color=#007100][ô] aqui vc coloca o codigo para salvar[/txt-color]
End If




FEDERHEN 20/08/2012 12:50:59
#408206
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

JOERBETH 20/08/2012 16:51:39
#408231
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
NICOLLAS2 20/08/2012 16:59:21
#408233
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 jeito

If 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
MARCELO.TREZE 20/08/2012 17:50:10
#408234
é 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