Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafa-martin

incluir registro ate um ponto, depois....

Recommended Posts

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 SubPorque acontece isso?Me dêem uma luz por favor, preciso de muita ajuda sobre isso.Muito Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo!

Cara mude no seu banco de dados... em vez de ser auto numeração... mude para Número .....de inicio amigo!

Em minha opnião e melhor Numero , pq e mais fácil de dar manutenção depois!

 

E vou tentar melhorar o seu código brother!

 

Private Sub cmdincluir_Click()Dim i As IntegerDim Ult_Registro as integerDim objControl As Objecti=0'QUE SER EXEMPLO: 01012004, DE ACORDO COM O PEDIDO E SEMPRE 8 If MsgBox("Confirma a Inclusão", vbQuestion + vbYesNo, "Confirmação") = vbYes ThenSet rs = db.OpenRecordset("pedido")' ***** REMOVIDA A ROTINA QUE BUSCAVA O ÚLTIMO CÓDIGO *****' ***** E SOMAVA MAIS UM (1) PARA O PRÓXIMO CÓDIGO ********' ***** INSERE O PEDIDO USANDO NUMERO *****sql = "Insert into pedido (cod_pedido_vendedor, "sql = sql & "cod_cliente_dist, "sql = sql & "codigo_distribuidor, "sql = sql & "codigo_farmacia, "sql = sql & "eqz, "sql = sql & "codigo_vendedor, "sql = sql & "apontador, "sql = sql & "prazo, "sql = sql & "tipo_cd, "sql = sql & "cliente, "sql = sql & "aprovacao, "sql = sql & "obs, "sql = sql & "qtde, "sql = sql & "valor_total, "sql = sql & "valor_bruto, "sql = sql & "valor_desconto_total, "sql = sql & "valor_liquido, "sql = sql & "obs2 ) "sql = sql & "Values ('"sql = sql & txtcodvendedor.Text & "','"sql = sql & txtcodcliente.Text & "',"sql = sql & txtcodigodistribuidor.Text & ", "sql = sql & txtcodigofarmacia.Text & ", "sql = sql & cbobrick.Text & ", "sql = sql & txtcodigovendedor.Text & ", 'sql = sql & txtapontador.Text & "','"sql = sql & txtprazo.Text & "','" sql = sql & txtcd.Text & "', '" sql = sql & txtcliente.Text & "','" sql = sql & txtaprovacaopedido.Text & "','" sql = sql & txtobs.Text & "', "sql = sql & txtqtdetotal.Text & ",'" sql = sql & txtpreco.Text & "','" sql = sql & txtvlrbruto.Text & "','" sql = sql & txtvlrdesctotal.Text & "','" sql = sql & txtvlrliq.Text & "','" sql = sql & txtobsalt.Text & "')"' ***** O ÚLTIMO REGISTRO QUE FOI INSERIDO *****Ult_Registro = txtcodvendedor.Textdb.BeginTransdb.Execute (sql)db.CommitTrans' ***** INSERE OS ITENS DO PEDIDO *****db.BeginTransFor i = 0 To (lstcodigopedido.ListCount - 1)  sql = "Insert into "  sql = sql & "itens_pedido2("  sql = sql & "codigo_pedido, "  sql = sql & "codigo_produto, "  sql = sql & "qtde, "  sql = sql & "valor, "  sql = sql & "desconto, "  sql = sql & "valor_bruto_i, "  sql = sql & "valor_desconto_total_i, "  sql = sql & "valor_liquido_i) "  sql = sql & "Values("  sql = sql & rs.recordcount & ","  sql = sql & lstcodigopedido.List(i) & ","   sql = sql & lstqtdepedido.List(i) & ",'"  sql = sql & lstpreco.List(i) & "','"   sql = sql & lstdesc.List(i) & "','"   sql = sql & lstvlrbruto.List(i) & "','"   sql = sql & lstvlrdesctotal.List(i) & "','"   sql = sql & lstvlrliq.List(i) & "')"db.Execute (sql)Next idb.CommitTransMsgBox ("Inclusão OK para o Pedido Nº " & rs.recordcount & ".")    'limpa dados dos Objetos do Formulário    For Each objControl In Name_Do_Form        If TypeOf objControl Is ComboBox or TypeOf objControl Is ListBox Then            objControl.clear        ElseIf TypeOf objControl Is TextBox Then            objControl.text = ""        ElseIf TypeOf objControl Is OpptionButton Then            objControl.Value = False        ElseIf TypeOf objControl Is PictureBox Then            objControl.Enabled = resp        End If    Nexttxtcodvendedor.SetFocusEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.