MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]estoque produto

    avatar
    msilveir
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 388
    Registrado : 13/03/2011

    [Resolvido]estoque produto Empty [Resolvido]estoque produto

    Mensagem  msilveir 17/6/2013, 02:13

    ola pessoal

    tenho esse código de baixa de estoque

    'Informa mensagem de Ordem
    If MsgBox("Você esta prestes atualizar o estoque?", vbQuestion + vbYesNo, "Confirme") = vbYes Then
    'Devol.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("tblProduto")
    Set rstSubFrm = Me.frmItemVenda.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!CodPro
    '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 "Atualizando Estoque. " _
    , vbInformation, "Atualizado com sucesso!!!"
    'DoCmd.OpenForm "Barra", acNormal
    If Forms!frmvenda!frmItemVenda.Locked = True Then
    Forms!frmvenda!frmItemVenda.Locked = False
    Else
    Forms!frmvenda!frmItemVenda.Locked = True
    End If
    'Atualiza cupom para imprimir
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    'Dim stDocName As String
    'stDocName = "rptordem"
    'DoCmd.OpenReport stDocName, acPreview, "CodManutencao = " & Me.CodManutencao
    Else
    End If

    quando uso no banco funciona ok
    mas quando divido o banco na funciona   
    da erro onde esta em vermelho
    avatar
    Convidado
    Convidado


    [Resolvido]estoque produto Empty Re: [Resolvido]estoque produto

    Mensagem  Convidado 20/6/2013, 00:58

    Ja tive problemas com o metodo Seek e Index.. resolvi substituindo pelo FindFirst..

    SeuRecordset.FindFirst "[SeuCodigo] = '" & SuaCaixatexto & "'"


    Algo assim:

    'Informa mensagem de Ordem
    If MsgBox("Você esta prestes atualizar o estoque?", vbQuestion + vbYesNo, "Confirme") = vbYes Then
    'Devol.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("tblProduto")
    Set rstSubFrm = Me.frmItemVenda.Form.RecordsetClone
    '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.FindFirst "SeuCampoCodidoNoRecordset= " & rstSubFrm!CodPro & ""
    '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 "Atualizando Estoque. " _
    , vbInformation, "Atualizado com sucesso!!!"
    'DoCmd.OpenForm "Barra", acNormal
    If Forms!frmvenda!frmItemVenda.Locked = True Then
    Forms!frmvenda!frmItemVenda.Locked = False
    Else
    Forms!frmvenda!frmItemVenda.Locked = True
    End If
    'Atualiza cupom para imprimir
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    'Dim stDocName As String
    'stDocName = "rptordem"
    'DoCmd.OpenReport stDocName, acPreview, "CodManutencao = " & Me.CodManutencao
    Else
    End If


    Cumprimentos.


    Última edição por PILOTO em 9/7/2013, 00:39, editado 1 vez(es) (Motivo da edição : Tópico dado como resolvido por falta de resposta)

      Data/hora atual: 7/5/2024, 04:50