Marcio silveira Postado Maio 22, 2007 Denunciar Share Postado Maio 22, 2007 ola pessoaleu sei que sou novo nesse forum mas estou com uma dificuldade de resolver o meu problema segue codigoPrivate Sub cmd_comfirma_Click()If MsgBox("Você confirma esta venda?", vbQuestion + vbYesNo, "Venda Concluida com sucesso!!!") = vbYes ThenConfirmado.Value = True'''''''''Atualização - baixa no estoque dos produtos vendidos''''''''''''''''''''''''DoCmd.RunCommand acCmdSaveRecordDim wk As DAO.WorkspaceDim db As DAO.DatabaseDim rstEstoque As DAO.RecordsetDim rstSubFrm As DAO.RecordsetSet wk = DBEngine.Workspaces(0)Set db = CurrentDbSet rstEstoque = db.OpenRecordset("Produto")Set rstSubFrm = Me.ItemVenda.Form.RecordsetClone'Informa qual indice será utilzado pelo metodo seek no recordset de EstoquerstEstoque.Index = "PrimaryKey"'Posiciona o ponteiro do recordset do subfrm no primeiro registrorstSubFrm.MoveFirst'Inicia um loop no recordset do subfrmDo While Not rstSubFrm.EOF'Inicia a busca no recordset estoque usando como argumento de busca o conteudo do campo CodPeca do subfrmrstEstoque.Seek "=", rstSubFrm!CodProduto'Se idênticoIf rstEstoque.NoMatch = False ThenrstEstoque.Edit 'Coloca o recordset em modo de edicaorstEstoque("Estoque") = rstEstoque("Estoque") - rstSubFrm("Quantia")rstEstoque.Update 'Grava a alteracao efetuada!End If'avanca para o proximo registro do subfrmrstSubFrm.MoveNextLoop'Encerra as variaveisrstSubFrm.CloserstEstoque.Closedb.Closewk.Close'Informa que foi dada baixa no estoque e imprime cupom de vendaMsgBox "Baixa do estoque. " _, vbInformation, "Realizada Com Sucesso!!!"ElseEnd IfEnd Submeu problema esta onde esta de negrito , quando vendo e primeira vez beleza da baixa normalmas qaundo vendo a segunda clicando no botao nova venda não da baixa e da erro 3420objeto não e valido ou não esta definido.se alguém tiver disposto e me ajudar e vou agredecer muito.muito obrigado a todos.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Maio 22, 2007 Denunciar Share Postado Maio 22, 2007 cara eu n sei bulhufas de VB.. mas no meu sistema eu dou baixa no estoque atravez de consultas..na verdade.. eu não dou baixa.. a consulta vai fazer o calculo de quanto saiu e quanto entrou.. sacou?eu acho bem melhor do que fazer rotinas para mexer nos dados armazenados..eu prefiro fazer sqls para calcular os dados Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcio silveira Postado Maio 22, 2007 Autor Denunciar Share Postado Maio 22, 2007 ola HUmmmuito obrigado pela sua atençãono meu caso eu tenho mesmo que usar vba mais uma vez muito obrigado pela sua atenção para com a minha pessoa..uma pergunta voce tem um exemplo de estoque que usa consultasmuito interessante...valeu... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Humm Postado Maio 23, 2007 Denunciar Share Postado Maio 23, 2007 funciona assim..você tem uma tabela de entradas de estoque onde voce lanca no campo quantidade as quantidades que vão entrando para cada data..você tem uma tabela de vendas onde voce registra em cada venda a quantidade que sai.ai voce cria uma consulta para cada tabela somando o total de entradas e de vendasentão voce cria outra consulta onde você pega os resultados das consultas anteriores e coloca [total_entrada]-[total_saida]logo voce tem nesta consulta a sua posicao atual de estoque.. sacou?eu chamo isso de manipular os dados.alias, a melhor coisa a se fazer é usar o menos de tabelas e campos possiveis para não abarrotar tanto o DB de dados "redundantes" e diminuir a carga de codigos Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Marcio silveira
ola pessoal
eu sei que sou novo nesse forum
mas estou com uma dificuldade de resolver o meu problema
segue codigo
Private Sub cmd_comfirma_Click()
If MsgBox("Você confirma esta venda?", vbQuestion + vbYesNo, "Venda Concluida com sucesso!!!") = vbYes Then
Confirmado.Value = True
'''''''''Atualização - baixa no estoque dos produtos vendidos''''''''''''''''''''''''
DoCmd.RunCommand acCmdSaveRecord
Dim wk As DAO.Workspace
Dim db As DAO.Database
Dim rstEstoque As DAO.Recordset
Dim rstSubFrm As DAO.Recordset
Set wk = DBEngine.Workspaces(0)
Set db = CurrentDb
Set rstEstoque = db.OpenRecordset("Produto")
Set rstSubFrm = Me.ItemVenda.Form.RecordsetClone
'Informa qual indice será utilzado pelo metodo seek no recordset de Estoque
rstEstoque.Index = "PrimaryKey"
'Posiciona o ponteiro do recordset do subfrm no primeiro registro
rstSubFrm.MoveFirst
'Inicia um loop no recordset do subfrm
Do While Not rstSubFrm.EOF
'Inicia a busca no recordset estoque usando como argumento de busca o conteudo do campo CodPeca do subfrm
rstEstoque.Seek "=", rstSubFrm!CodProduto
'Se idêntico
If rstEstoque.NoMatch = False Then
rstEstoque.Edit 'Coloca o recordset em modo de edicao
rstEstoque("Estoque") = rstEstoque("Estoque") - rstSubFrm("Quantia")
rstEstoque.Update 'Grava a alteracao efetuada!
End If
'avanca para o proximo registro do subfrm
rstSubFrm.MoveNext
Loop
'Encerra as variaveis
rstSubFrm.Close
rstEstoque.Close
db.Close
wk.Close
'Informa que foi dada baixa no estoque e imprime cupom de venda
MsgBox "Baixa do estoque. " _
, vbInformation, "Realizada Com Sucesso!!!"
Else
End If
End Sub
meu problema esta onde esta de negrito , quando vendo e primeira vez beleza da baixa normal
mas qaundo vendo a segunda clicando no botao nova venda não da baixa e da erro 3420
objeto não e valido ou não esta definido.
se alguém tiver disposto e me ajudar e vou agredecer muito.
muito obrigado a todos..
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.