Pessoal, por favor vê se alguém pode me ajudar. Tô com um problemão.
Fiz um sistema de Automação de Vendas que já está em um dos clientes da minha empresa.
O que está acontecendo?
Existe uma tela de pedidos. Estou incluindo vários pedidos. Todas vez que eu incluo um pedido ele
gera um número.
Porém, só consigo gravar até o pedido número 54. Quando eu tento incluir o pedido 55 e 56 ele gera o
número como 0 (zero), ou seja, ele está pulando dois pedidos, então ele gravaria o pedido 55 e 56,
como sendo 57 e 58.
Estou usando banco de dados access (97) e esse número que é gerado é um campo auto-numeração
no access.
O código de inclusão que fiz é esse:
Private Sub cmdincluir_Click()
' MsgBox "ATENÇÃO O CAMPO DATA DA VENDA TÊM QUE SER EXEMPLO: 01012004, DE ACORDO COM O
PEDIDO E SEMPRE 8 DIGITOS"
'If txtdata.Text = "" Then
' MsgBox "CAMPO DATA DATA DA VENDA OBRIGATÓRIO, ATENÇÃO O CAMPO DATA DA VENDA TÊM
QUE SER EXEMPLO: 01012004, DE ACORDO COM O PEDIDO E SEMPRE 8 DIGITOS"
' txtdata.SetFocus
' Exit Sub
'End If
Dim confirmar As Integer
confirmar = MsgBox("Confirma a Inclusão", vbQuestion + vbYesNo, "Confirmação")
If confirmar = 6 Then
Dim i As Integer
Dim cod As Long
Dim qry As Recordset
' ***** REMOVIDA A ROTINA QUE BUSCAVA O ÚLTIMO CÓDIGO *****
' ***** E SOMAVA MAIS UM (1) PARA O PRÓXIMO CÓDIGO ********
' ***** INSERE O PEDIDO USANDO AUTO-NUMERAÇÃO *****
sql = "Insert into pedido (cod_pedido_vendedor, "
sql = sql & "cod_cliente_dist, "
sql = sql & "codigo_distribuidor, "
sql = sql & "codigo_farmacia, "
sql = sql & "eqz, codigo_vendedor, "
sql = sql & "apontador, prazo, tipo_cd, "
sql = sql & "cliente, aprovacao, obs, "
'sql = sql & "data, cliente, aprovacao, obs, "
sql = sql & "qtde, valor_total, valor_bruto, "
sql = sql & "valor_desconto_total, valor_liquido, obs2 "
sql = sql & ") Values ("
sql = sql & "'" & txtcodvendedor.Text & "','" & txtcodcliente.Text & "'," & txtcodigodistribuidor.Text &
"," & txtcodigofarmacia.Text & "," & cbobrick.Text & "," & txtcodigovendedor.Text & ",'" &
txtapontador.Text & "','" & txtprazo.Text & "','" & txtcd.Text & "','" & txtcliente.Text & "','" &
txtaprovacaopedido.Text & "','" & txtobs.Text & "'," & txtqtdetotal.Text & ",'" & txtpreco.Text & "','" &
txtvlrbruto.Text & "','" & txtvlrdesctotal.Text & "','" & txtvlrliq.Text & "','" & txtobsalt.Text & "')"
'MsgBox sql
'Open App.Path & "SQL.txt" For Output As #1
'Print #1, sql
'Close #1
db.Execute (sql)
' ***** BUSCA O ÚLTIMO REGISTRO QUE FOI INSERIDO *****
sql = "Select codigo_pedido From pedido Where"
sql = sql & " data2 = #" & Month(Date) & "/" & Day(Date) & "/" & Year(Date) & "#"
sql = sql & " And qtde = " & txtqtdetotal.Text
sql = sql & " And codigo_distribuidor = " & txtcodigodistribuidor.Text & ""
sql = sql & " And codigo_farmacia = " & txtcodigofarmacia.Text & ""
sql = sql & " And codigo_vendedor = " & txtcodigovendedor.Text & ""
sql = sql & " Order By codigo_pedido Desc"
' MsgBox sql
' Open App.Path & "SQL.txt" For Output As #1
' Print #1, sql
' Close #1
Set rs = db.OpenRecordset(sql)
If Not (rs.BOF And rs.EOF) Then
cod = rs("codigo_pedido")
'MsgBox cod
End If
rs.Close
' ***** INSERE OS ITENS DO PEDIDO *****
For i = 0 To (lstcodigopedido.ListCount - 1)
sql = "Insert into itens_pedido2(codigo_pedido, codigo_produto, qtde, valor, desconto,
valor_bruto_i, valor_desconto_total_i, valor_liquido_i) Values(" & cod & "," & lstcodigopedido.List(i) &
"," & lstqtdepedido.List(i) & ",'" & lstpreco.List(i) & "','" & lstdesc.List(i) & "','" & lstvlrbruto.List(i) &
"','" & lstvlrdesctotal.List(i) & "','" & lstvlrliq.List(i) & "')"
'MsgBox sql
db.Execute (sql)
Next i
On Error Resume Next
txtcodigo.Text = CStr(cod)
'cmdincluir.Enabled = False
MsgBox ("Inclusão OK para o Pedido Nº " & CStr(cod) & ".")
End If
txtcodigo.Text = ""
optcancelar.Value = False
txtcodvendedor.Text = ""
txtcodcliente.Text = ""
cbodist = ""
lbldistribuidora = ""
txtcnpjfarmacia.Text = ""
lblfarmacia = ""
'cbobrick.ListIndex = -1
txtvendedor.Text = ""
txtcodigovendedor.Text = ""
txtapontador.Text = ""
txtcd.Text = ""
txtprazo.Text = ""
txtvlrbruto.Text = ""
txtvlrdesctotal.Text = ""
txtvlrliq.Text = ""
txtdata.Text = ""
txtcliente.Text = ""
txtaprovacaopedido.Text = ""
lstcodigopedido.Clear
lstpreco.Clear
lstdesc.Clear
lstvlrbruto.Clear
lstvlrdesctotal.Clear
lstvlrliq.Clear
lstqtdepedido.Clear
txtqtdetotal.Text = ""
lblprecototalpedido = ""
txtpreco.Text = ""
txtvlrbruto.Text = ""
txtvlrdesctotal.Text = ""
txtvlrliq.Text = ""
lbldata2 = ""
txtobsalt.Text = ""
txtobs.Text = ""
txtcodvendedor.SetFocus
End Sub
Porque acontece isso?
Me dêem uma luz por favor, preciso de muita ajuda sobre isso.
Muito Obrigado