bom dia a todos se alguém puder me ajudar dando uma olhada neste sistema de venda que está com seguinte erro ao Efetuar uma venda com vários itens que contém a mesma quantidade no estoque quando vou salvar os itens repetem a mesma quantidade do primeiro item Se alguém puder dar uma olhada Eu agradeço
2 participantes
[Resolvido]erro ao dar baixa no estoque
marcelo marques- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1003
Registrado : 12/04/2016
- Mensagem nº1
[Resolvido]erro ao dar baixa no estoque
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº2
Re: [Resolvido]erro ao dar baixa no estoque
Amigo, Mude parte do Codigo do Botão salvar... Colocando este, na parte da Baixa do Estoque:
Faça o teste!!!
- Código:
Else
If MsgBox("Dar Baixa no Estoque?", 1) <> 1 Then Exit Sub
'---------------------------------------------------'
' Criado por Fabio Paes
'---------------------------------------------------'
Dim DB As Database
Dim rsVenda As DAO.Recordset
Dim rsEstoque As DAO.Recordset
Set DB = CurrentDb()
Set rsVenda = DB.OpenRecordset("SELECT Tbl_VendasDet.Produto, Tbl_VendasDet.Quantidade FROM Tbl_VendasDet Where Tbl_VendasDet.codigovendas = " & Me.CodVenda & "") ' Tabela onde as quantidades a dar Baixa Estoque
'Percorre a Tabela de Origem dados
Do While Not rsVenda.EOF
'Seleciona o Produto na tabCadProduto e Atualiza o Estoque
Set rsEstoque = DB.OpenRecordset("SELECT * FROM tb_produto WHERE codigo = " & rsVenda!Produto & "") ' Tabela que receberá os dados
'Inicia a Gravação dos dados na Tb2
rsEstoque.Edit
rsEstoque("Estoque") = rsEstoque("Estoque") - rsVenda("Quantidade")
rsEstoque.Update
rsVenda.MoveNext
Loop
'Fecha as conexoes
rsVenda.Close
rsEstoque.Close
DB.Close
Me.Tbl_VendasDet_subformulário.Requery: Me.lançadoEstoque = -1
MsgBox "Baixa no estoque feita com sucesso!"
End If
Faça o teste!!!
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
marcelo marques- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1003
Registrado : 12/04/2016
- Mensagem nº3
Re: [Resolvido]erro ao dar baixa no estoque
obrigado por disponibilizar seu tempo pra dar uma olhada,vou fazer esta mudança e retorno obrigado mesmo tenha um bom dia.
marcelo marques- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1003
Registrado : 12/04/2016
- Mensagem nº4
Re: [Resolvido]erro ao dar baixa no estoque
bom dia Fabio este código que você me enviou esta sem fechar o parêntese eu tentei fechar mais sempre dava erro eu não sei se esta falando algo ou eu não sei ainde fechar antecipadamente meus agradecimentos e um bom dia
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº5
Re: [Resolvido]erro ao dar baixa no estoque
Amigão, muito estranho ja que copiei e colei do seu BD... Mas vou baixar e ver...
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
FabioPaes- Maximo VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 3914
Registrado : 14/08/2013
- Mensagem nº6
Re: [Resolvido]erro ao dar baixa no estoque
Amigo, para nao haver erros de onde colar... Apague todo o Codigo do Botão salvar, e Substitua por este:
Private Sub btnSalvar_Click()
If IsNull(txtCliente) Then
Beep
MsgBox "O Campo Cliente Deve ser Preenchido", vbInformation, "Aviso"
Me.txtCliente.BackColor = 13231868
Me.txtCliente.SetFocus
Else
If IsNull(txt_vendedor) Then
Beep
MsgBox "O Campo vendedor Deve ser Preenchido", vbInformation, "Aviso"
Me.txt_vendedor.BackColor = 13231868
Me.txt_vendedor.SetFocus
Else
If IsNull(Txttotalvenda) = True Then
Beep
MsgBox "Não Existe Venda A ser efetuada", vbInformation, "Aviso"
'Me.txtCliente.BackColor = 13231868
'Me.txtCliente.SetFocus
DoCmd.CancelEvent
Else
If IsNull(txtVenc_1_Parc) Then
Beep
MsgBox "O Campo Vencimento Deve ser Preenchido", vbInformation, "Aviso"
Me.Dt_1Parcela.BackColor = 13231868
Me.Dt_1Parcela.SetFocus
Else
If IsNull(FormaPgto) Then
Beep
MsgBox "O Campo forma de Pgto Deve ser Preenchido", vbInformation, "Aviso"
Me.FormaPgto.BackColor = 13231868
Me.FormaPgto.SetFocus
Else
If IsNull(QtdeParcelas) Then
Beep
MsgBox "O Campo quantidade de parcela Deve ser Preenchido", vbInformation, "Aviso"
Me.QtdeParcelas.BackColor = 13231868
Me.QtdeParcelas.SetFocus
Else
If MsgBox(" Deseja efetuar a venda?", vbYesNo + vbDefaultButton1 + vbInformation, "Venda!") = vbYes Then
On Error GoTo y1:
Dim rs As DAO.Recordset
DoCmd.RunCommand acCmdSaveRecord
If Me.lançadoEstoque = -1 Then
MsgBox "Já foi lançado no estoque! Se quer lançar novamente Desselecione o campo ""Lançar no Estoque!"""
Else
If MsgBox("Dar Baixa no Estoque?", 1) <> 1 Then Exit Sub
'---------------------------------------------------'
' Criado por Fabio Paes
'---------------------------------------------------'
Dim DB As Database
Dim rsVenda As DAO.Recordset
Dim rsEstoque As DAO.Recordset
Set DB = CurrentDb()
Set rsVenda = DB.OpenRecordset("SELECT Tbl_VendasDet.Produto, Tbl_VendasDet.Quantidade FROM Tbl_VendasDet Where Tbl_VendasDet.codigovendas = " & Me.CodVenda & "") ' Tabela onde as quantidades a dar Baixa Estoque
'Percorre a Tabela de Origem dados
Do While Not rsVenda.EOF
'Seleciona o Produto na tabCadProduto e Atualiza o Estoque
Set rsEstoque = DB.OpenRecordset("SELECT * FROM tb_produto WHERE codigo = " & rsVenda!Produto & "") ' Tabela que receberá os dados
'Inicia a Gravação dos dados na Tb2
rsEstoque.Edit
rsEstoque("Estoque") = rsEstoque("Estoque") - rsVenda("Quantidade")
rsEstoque.Update
rsVenda.MoveNext
Loop
'Fecha as conexoes
rsVenda.Close
rsEstoque.Close
DB.Close
'-------------------------------------------------------------------------
Me.Tbl_VendasDet_subformulário.Requery: Me.lançadoEstoque = -1
MsgBox "Baixa no estoque feita com sucesso!"
End If
Exit Sub
y1: MsgBox Err.Description
Else
'se for nao
DoCmd.SetWarnings False
DoCmd.OpenQuery "nCS_EXCLUIR_SUBVENDAS", acViewNormal, acEdit 'dedeta venda cancelada
Me.bt_GerarParcelas.Enabled = True
'DoCmd.OpenQuery "CancelarSub", acViewNormal, acEdit
Me.Requery
DoCmd.SetWarnings True
'fim de nao
DoCmd.CancelEvent
Me.Undo
End If
End If
End If
End If
End If
End If
End If
End Sub
A parte em Azul foi a minha Alteração!
Private Sub btnSalvar_Click()
If IsNull(txtCliente) Then
Beep
MsgBox "O Campo Cliente Deve ser Preenchido", vbInformation, "Aviso"
Me.txtCliente.BackColor = 13231868
Me.txtCliente.SetFocus
Else
If IsNull(txt_vendedor) Then
Beep
MsgBox "O Campo vendedor Deve ser Preenchido", vbInformation, "Aviso"
Me.txt_vendedor.BackColor = 13231868
Me.txt_vendedor.SetFocus
Else
If IsNull(Txttotalvenda) = True Then
Beep
MsgBox "Não Existe Venda A ser efetuada", vbInformation, "Aviso"
'Me.txtCliente.BackColor = 13231868
'Me.txtCliente.SetFocus
DoCmd.CancelEvent
Else
If IsNull(txtVenc_1_Parc) Then
Beep
MsgBox "O Campo Vencimento Deve ser Preenchido", vbInformation, "Aviso"
Me.Dt_1Parcela.BackColor = 13231868
Me.Dt_1Parcela.SetFocus
Else
If IsNull(FormaPgto) Then
Beep
MsgBox "O Campo forma de Pgto Deve ser Preenchido", vbInformation, "Aviso"
Me.FormaPgto.BackColor = 13231868
Me.FormaPgto.SetFocus
Else
If IsNull(QtdeParcelas) Then
Beep
MsgBox "O Campo quantidade de parcela Deve ser Preenchido", vbInformation, "Aviso"
Me.QtdeParcelas.BackColor = 13231868
Me.QtdeParcelas.SetFocus
Else
If MsgBox(" Deseja efetuar a venda?", vbYesNo + vbDefaultButton1 + vbInformation, "Venda!") = vbYes Then
On Error GoTo y1:
Dim rs As DAO.Recordset
DoCmd.RunCommand acCmdSaveRecord
If Me.lançadoEstoque = -1 Then
MsgBox "Já foi lançado no estoque! Se quer lançar novamente Desselecione o campo ""Lançar no Estoque!"""
Else
If MsgBox("Dar Baixa no Estoque?", 1) <> 1 Then Exit Sub
'---------------------------------------------------'
' Criado por Fabio Paes
'---------------------------------------------------'
Dim DB As Database
Dim rsVenda As DAO.Recordset
Dim rsEstoque As DAO.Recordset
Set DB = CurrentDb()
Set rsVenda = DB.OpenRecordset("SELECT Tbl_VendasDet.Produto, Tbl_VendasDet.Quantidade FROM Tbl_VendasDet Where Tbl_VendasDet.codigovendas = " & Me.CodVenda & "") ' Tabela onde as quantidades a dar Baixa Estoque
'Percorre a Tabela de Origem dados
Do While Not rsVenda.EOF
'Seleciona o Produto na tabCadProduto e Atualiza o Estoque
Set rsEstoque = DB.OpenRecordset("SELECT * FROM tb_produto WHERE codigo = " & rsVenda!Produto & "") ' Tabela que receberá os dados
'Inicia a Gravação dos dados na Tb2
rsEstoque.Edit
rsEstoque("Estoque") = rsEstoque("Estoque") - rsVenda("Quantidade")
rsEstoque.Update
rsVenda.MoveNext
Loop
'Fecha as conexoes
rsVenda.Close
rsEstoque.Close
DB.Close
'-------------------------------------------------------------------------
Me.Tbl_VendasDet_subformulário.Requery: Me.lançadoEstoque = -1
MsgBox "Baixa no estoque feita com sucesso!"
End If
Exit Sub
y1: MsgBox Err.Description
Else
'se for nao
DoCmd.SetWarnings False
DoCmd.OpenQuery "nCS_EXCLUIR_SUBVENDAS", acViewNormal, acEdit 'dedeta venda cancelada
Me.bt_GerarParcelas.Enabled = True
'DoCmd.OpenQuery "CancelarSub", acViewNormal, acEdit
Me.Requery
DoCmd.SetWarnings True
'fim de nao
DoCmd.CancelEvent
Me.Undo
End If
End If
End If
End If
End If
End If
End If
End Sub
A parte em Azul foi a minha Alteração!
.................................................................................
_____________________________________________________________________
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
A dica do Colega foi útil? Agradeça!
O importante não saber tudo, mas sim a Onde procurar!
marcelo marques- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1003
Registrado : 12/04/2016
- Mensagem nº7
Re: [Resolvido]erro ao dar baixa no estoque
boa tarde Fabio me desculpa pelo trabalho que estou dando, assim que testar retorno obrigado e tenha uma boa tarde
marcelo marques- VIP
- Respeito às regras :
Sexo :
Localização :
Mensagens : 1003
Registrado : 12/04/2016
- Mensagem nº8
Re: [Resolvido]erro ao dar baixa no estoque
bom dia Fabio retornei para lhe informar que deu certo o código que você me passou muito obrigado eu estava para desistir muito obrigado mesmo a todos vocês e tenha um bom dia.