NUMERO DO CUPOM
Hoje é dia de perguntar..........
Bom, uso essa rotina abaixo para gerar o Numero da Venda. testei em duas maquinas em rede.. e o número duplicou..
Alguma Sugestão pra nao acontecer isso...
Um Computador Servidor outro Cliente...
Base de Dados Mysql..
Private Sub Gera_Cupom()
Sql = [Ô]Select Max(NUM_CUPOM) As Cupom From Tbl_Vendas Where Num_Caixa = [ô][Ô] & Numero_Caixa & [Ô][ô] And Num_caixa = [ô][Ô] & Numero_Caixa & [Ô][ô][Ô]
Set rst = Conexao.Execute(Sql)
If IsNumeric(rst!cupom) = False Then
LblNum_Cupom.Caption = 1
Else
LblNum_Cupom.Caption = Format(rst!cupom + 1, [Ô]000000[Ô])
End If
Numero_Cupom = LblNum_Cupom.Caption
End Sub
Bom, uso essa rotina abaixo para gerar o Numero da Venda. testei em duas maquinas em rede.. e o número duplicou..
Alguma Sugestão pra nao acontecer isso...
Um Computador Servidor outro Cliente...
Base de Dados Mysql..
Private Sub Gera_Cupom()
Sql = [Ô]Select Max(NUM_CUPOM) As Cupom From Tbl_Vendas Where Num_Caixa = [ô][Ô] & Numero_Caixa & [Ô][ô] And Num_caixa = [ô][Ô] & Numero_Caixa & [Ô][ô][Ô]
Set rst = Conexao.Execute(Sql)
If IsNumeric(rst!cupom) = False Then
LblNum_Cupom.Caption = 1
Else
LblNum_Cupom.Caption = Format(rst!cupom + 1, [Ô]000000[Ô])
End If
Numero_Cupom = LblNum_Cupom.Caption
End Sub
Porque não utiliza um campo como AUTO_INCREMENT?
Exemplo:
Exemplo:
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);
Já Existe um Campo Chamado ID Auto_INCREMENT.....
Então, veja se isso te ajuda.
mysql> SELECT LAST_INSERT_ID();
Tecla, eu confesso, nao endendi..
mysql> SELECT LAST_INSERT_ID();
assim esta a estrutura da tabela
mysql> SELECT LAST_INSERT_ID();
assim esta a estrutura da tabela
Vou postar mas vc ta me devendo.... rssss
aqui no meu nao da erro nunca...
Function autoSalesNo()
RS.Open [Ô]SELECT max(NroVenda) as numero FROM vendas[Ô], Con
If RS![numero] > 0 Then
numero = RS![numero] + 1
Else
numero = 1
End If
RS.Close
txtInvoiceNo.Text = Format(numero, [Ô]000000[Ô]) [ô]mostra na tela
End Function
aqui no meu nao da erro nunca...
Function autoSalesNo()
RS.Open [Ô]SELECT max(NroVenda) as numero FROM vendas[Ô], Con
If RS![numero] > 0 Then
numero = RS![numero] + 1
Else
numero = 1
End If
RS.Close
txtInvoiceNo.Text = Format(numero, [Ô]000000[Ô]) [ô]mostra na tela
End Function
Abra uma Transação, no momento de salvar o registro, ou no momento de buscar os dados, assim não há erros, uma maquina deve esperar a outra terminar o processamento.
DAVERSON, dessa forma q vc postou não tem problema de duplicar o numero do cupom ?, vou ter q usar em 3 pdv[ô]s....
Citação::
DAVERSON, dessa forma q vc postou não tem problema de duplicar o numero do cupom ?, vou ter q usar em 3 pdv[ô]s....
acredito que nao... mesmo assim crie uma rotina que verifique novamente na hora de gravar... se houve mudança ele pegue o nro maior acho que fica bem simples
DAVERSON, dessa forma continua duplicando...
RS.Open [Ô]SELECT max(NroVenda) as numero FROM vendas[Ô], Con
If RS![numero] > 0 Then
numero = RS![numero] + 1
Else
numero = 1
End If
RS.Close
txtInvoiceNo.Text = Format(numero, [Ô]000000[Ô]) [ô]mostra na tela
End Function
alguem tem uma sugestão dessa rotina, o número do cupom nao seja reptido na base de dados, estou usando 3 PDV[ô]S...
RS.Open [Ô]SELECT max(NroVenda) as numero FROM vendas[Ô], Con
If RS![numero] > 0 Then
numero = RS![numero] + 1
Else
numero = 1
End If
RS.Close
txtInvoiceNo.Text = Format(numero, [Ô]000000[Ô]) [ô]mostra na tela
End Function
alguem tem uma sugestão dessa rotina, o número do cupom nao seja reptido na base de dados, estou usando 3 PDV[ô]S...
vc deve executar a rotina no inicio do processo... onde ele ira fazer a verificação do numero do cupon... blz
ai feito o processo de venda quando vc for salvar a venda vc faz uma nova chamada pra ver se este nro mudou...
se mudou vc atualiza o numero do cupom e salva com o numero atual
i
ai feito o processo de venda quando vc for salvar a venda vc faz uma nova chamada pra ver se este nro mudou...
se mudou vc atualiza o numero do cupom e salva com o numero atual
i
Tópico encerrado , respostas não são mais permitidas