MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Verificação de Dados em subform

    Compartilhe

    FilipeFaria
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 17/06/2017

    [Resolvido]Verificação de Dados em subform

    Mensagem  FilipeFaria em 16/4/2018, 01:14

    Pessoal, boa noite. Peço a ajuda de vocês em um dúvida que já deve ter sido tratada poe aqui, mas ainda não consegui localizar. talvez seja uma dúvida simples, mas pela falta de conhecimento me limita.

    Tenho um Form Principal contendo dois Subforms (FORM_SUB_OC_ENTNF)  e (FRM_SUB_ENTNF), em modo folha de dados.
    No form Principal, tenho os códigos para exclusão do registro no botão excluir. Porém eu gostaria de fazer a exclusão de acordo com alguns critérios dos subforms para cada produto que nele conste.

    Por exemplo: Se no Subform A  o Status for Concluído (para todos os produtos) e no Subform B o Status for Entrada (para todos os produtos),  então apaga tudo e volta a contabilidade. Tendo um em mãos, desenvolvo as demais condições.

    A dúvida é, como percorrer e verificar todos os campos status dos dois Subforms, atendem a condição e assim rodar o código?

    Desde já agradeço a ajuda.

    Segue o código que utilizo para fazer a exclusão desenvolvido parte pelo Fabio Paes no qual implementei algumas alterações de acordo com minha necessidade.


    Código:

    'Criado por Fabio Paes
    '   Em 25/07/2017
    'On Error GoTo trataerro

    If MsgBox("DESEJA DAR ENTRADA EM TODA NF?", vbQuestion + vbYesNo, "CONFIRMAÇÃO") = vbYes Then

    'DoCmd.RunCommand acCmdSaveRecord 'Salvo o Registro antes de começar a selecionar os dados
    Dim DB As Database 'Declaro as variaveis utilizadas no codigo
    Dim RSO, RSD, rsD2 As DAO.Recordset 'Variavel rsO=Fara a consulta dos produtos lançados na NF (Origem)
                                       'rsD=Fara a consulta do produto a ser adicionado o Estoque
                                       'rsD2=Fara a consulta do produto a ser DIMINUIDO a qnt da OC
    Set DB = CurrentDb() 'defino que irei mecher no BD atual
    'Realizo a consulta e trago todos os produtos lançados na NF em questão
    Set RSO = DB.OpenRecordset("SELECT * FROM DETALHES_ENTRADA_NF WHERE Codcont = " & Me.txt_IdIntControle & "")

       Do While Not RSO.EOF 'Repetirei tudo a partir daqui
           'Faço a consulta e pego SOMENTE o produto em questão para adidionar o estoque
       Set RSD = DB.OpenRecordset("SELECT * FROM PRODUTOS WHERE CodPrd = '" & RSO!CodPrd & "'")
       'Faço a consulta e pego SOMENTE o produto em questão para diminuir a quantidade da OC
       Set rsD2 = DB.OpenRecordset("SELECT * FROM DETALHES_DA_OC WHERE NumOC = '" & Me.NumOC & "' AND CodPrd = '" & RSO!CodPrd & "'")
           'Diminui a quantidade Pendente da OC
       'Set RSD3 = DB.OpenRecordset("SELECT * FROM ODEM_DE_COMPRA WHERE NumOC = '" & Me.NumOC & "'")
           
           
           rsD2.Edit
           If RSO!Quantidade = 0 Then
               MsgBox " EXISTEM PRODUTOS COM QUANTIDADE 0. VERIFIQUE!", vbInformation, "INFORMAÇÃO DO SISTEMA"
                   DoCmd.CancelEvent
                       End
           Else
           rsD2!QtdePendente = rsD2!QtdePendente - RSO!Quantidade
           rsD2.Update
           End If
               
           Select Case Me.Deposito.Column(1)
               Case "D001"
                   'Acrescenta a quantidade de cada produto ao estoque
                   RSD.Edit
                   RSD!EmEstoqueD001 = RSD!EmEstoqueD001 + RSO!Quantidade
                   RSD.Update
       
             
               Case "D002"
                   RSD.Edit
                   RSD!EmEstoqueD002 = RSD!EmEstoqueD002 + RSO!Quantidade
                   RSD.Update
                           
               
                Case "D003"
                   RSD.Edit
                   RSD!EmEstoqueD003 = RSD!EmEstoqueD003 + RSO!Quantidade
                   RSD.Update
                 
                   
              Case "D004"
                   RSD.Edit
                   RSD!EmEstoqueD004 = RSD!EmEstoqueD002 + RSO!Quantidade
                   RSD.Update
                                                               
          End Select
         
         
         
       Select Case rsD2!QtdePendente
       
       Case Is = 0
           
          rsD2.Edit
          rsD2!Status = "CONCLUIDO"
          rsD2.Update
       
       End Select
       
     RSO.Edit
     RSO!Status = "ENTRADA"
     RSO.Update
     
     'RSD3.Edit
     'RSD3!Valor_Restante = Me.TXT_VALOR_PENDENTE
     'RSD3.Update
     
     
                 
       RSO.MoveNext 'Movo para proximo registro para Iniciar a Atualização do Novo produto...
       Loop    'Fim da alteração e Inicio da nova repetição para o Novo produto
    'Fecha as Conexoes abertas
    Set DB = Nothing
    Set RSO = Nothing
    Set RSD = Nothing
    Set rsD2 = Nothing
    'Set RSD3 = Nothing
    DoCmd.RunCommand acCmdSaveRecord

       MsgBox "ENTRADA EFETUADA COM SUCESSO E ITENS BAIXADOS DA OC.", vbInformation, "INFORMAÇÃO DO SISTEMA"


    FilipeFaria
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 17/06/2017

    Re: [Resolvido]Verificação de Dados em subform

    Mensagem  FilipeFaria em 19/4/2018, 03:34

    Pessoal, boa noite, ainda sem conseguir resolver esta parte recorro a vcs novamente afim de tentar sanar essa parte. Aproveito para dar mais informações do que preciso tentando ser mais claro.

    Form Pricipal.: FRM_ENTRADA_NF  - (tabela.: Entrada_nf) 'origem dos dados
    Subfom1.: FORM_SUB_OC_ENTNF - (tabela.: DETALHES_DA_OC) 'origem dos dados
    Subfom2.: FRM_SUB_ENTNF - (tabela.: DETALHES_ENTRADA_NF) 'origem dos dados

    O que preciso seria algo próximo a isso:

    If Me.FORM_SUB_OC_ENTNF.Form.Status = "CONCLUIDO" And Me.FRM_SUB_ENTNF.Form.Status.Value = "ENTRADA" Then
       
       DoCmd.RunCommand acCmdDeleteRecord
       
    Else
       MsgBox " IMPOSSÍVEL REALIZAR A AÇÃO. CONSULTE O ADMINISTADOR DO SISTEMA", vbCritical, "IFORMAÇÃO DO SISTEMA"
    avatar
    bigfill
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 318
    Registrado : 27/03/2015

    Re: [Resolvido]Verificação de Dados em subform

    Mensagem  bigfill em 19/4/2018, 05:28

    Boa noite FilipeFaria, poderia posta a parte envolvida, assim ficaria mais fácil lhe ajudar.

    no aguardo

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Verificação de Dados em subform

    Mensagem  Noobezinho em 19/4/2018, 11:45

    Felipe

    Utilize consultas inclusão para as entradas no estoque e exclusão para retirar os registros da tabela DETALHES_DA_OC.

    Lembre-se que consultas, uma vez definido os critérios, elas varrem toda a tabela a procura de registros com esse(s) critério(s)

    e então executar o que foi definido(adição ou exclusão).

    Sugiro que mantenha os registros da tabela detalhes das ordens de compra, pois com eles, poderá fazer um relatório no futuro.

    [ ]'s
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3904
    Registrado : 14/08/2013

    Re: [Resolvido]Verificação de Dados em subform

    Mensagem  FabioPaes em 19/4/2018, 15:10

    Amigo, quanto a sua dúvida: A dúvida é, como percorrer e verificar todos os campos status dos dois Subforms, atendem a condição e assim rodar o código?


    Terá que fazer uma consulta, buscando os dados e verificando de acordo com o Critério que precisa....


    Ex:

    Por exemplo: Se no Subform A  o Status for Concluído (para todos os produtos) e no Subform B o Status for Entrada (para todos os produtos),  então apaga tudo e volta a contabilidade. Tendo um em mãos, desenvolvo as demais condições.
    Dim verStatusA, verStatusB as integer


    'Veja que aqui, eu irei contar todos os Produtos na NF em questao que estejam com o status DIFERENTE COncluído.
    verStatusA  = Nz(Dcount("*","NomeTabelaSubFormA","NumNF = " & Me.NumeroNF & " AND Status <> 'Concluído'"),0)


    'Veja que aqui, eu irei contar todos os Produtos na NF DO SUBFORMB em questao que estejam com o status DIFERENTE de ENTRADA.
    verStatusB  = Nz(Dcount("*","NomeTabelaSubFormB","NumNF = " & Me.NumeroNF & " AND Status <> 'Entrada'"),0)

    If verStatusA = 0 AND verStatusB=0 Then
          'Codigo para "... então apaga tudo e volta a contabilidade. Tendo um em mãos" Ja que tudo dessa nota estava concluido e era entrada.
    end if


    Siga a dica para as demais condições, sempre Contando os registros tendo como critério o NUmero da NF e o Status se for o caso.


    .................................................................................
    _____________________________________________________________________
    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!

    FilipeFaria
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 17/06/2017

    Re: [Resolvido]Verificação de Dados em subform

    Mensagem  FilipeFaria em 19/4/2018, 15:27

    opa!! já estava a preparar um arquivo para postar aqui. Vou testar agora mesmo e assim que possível dou retorno.
    Obrigado a todos!

    FilipeFaria
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 22
    Registrado : 17/06/2017

    Re: [Resolvido]Verificação de Dados em subform

    Mensagem  FilipeFaria em 19/4/2018, 15:55

    Fábio, muito obrigado, funcionou com perfeição, como sempre me dando uma força. Agradeço também aos demais amigos pelas sugestões. Agora é só fazer as demais.

    Abraço a todos!
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3904
    Registrado : 14/08/2013

    Re: [Resolvido]Verificação de Dados em subform

    Mensagem  FabioPaes em 19/4/2018, 18:06

    Bacana amigo! Que bom que deu certo! Até a próxima se Deus quiser!

    A Resposta demorou pq seu Tópico ficou confuso. A Dúvida em si estava bem escondida ali na mensagem! rerererererere


    .................................................................................
    _____________________________________________________________________
    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!

      Data/hora atual: 21/7/2018, 05:00