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]Dúvida - Utiliza DContar - Domínio Agregado por registro

    Compartilhe

    MarceloBarroso
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 09/11/2015

    [Resolvido]Dúvida - Utiliza DContar - Domínio Agregado por registro

    Mensagem  MarceloBarroso em 22/6/2017, 21:14

    Prezados,

    Estou com uma dúvida para utilizar a função DContar dentro de um domínio que é uma linha da tabela.

    Vamos supor que eu tenha a tabela que para cada registro eu tenha uma coluna de resultado por mês.

    Então na linha 1, eu tenho uma coluna JAN, outra FEV, até DEZ. Quero fazer uma contagem de quantas colunas (meses) o resultado é superior a um determinado valor (30% por exemplo).

    Como posso usar o DContar em uma consulta atualização para que o campo RESULTADO da coluna, mostre quantos meses um determinado registro superou o valor de 30%?

    Agradeço pela ajuda.

    MarceloBarroso
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 09/11/2015

    Re: [Resolvido]Dúvida - Utiliza DContar - Domínio Agregado por registro

    Mensagem  MarceloBarroso em 26/6/2017, 19:35

    Pessoal,

    Não consegui até o momento uma resposta com a utilização do DContar.

    Acabei bolando uma solução criando uma função onde utilizo o método DAO.  Vide anexo.

    Assim eu leio cada registro e verifico se em  todos os meses daquele registro a meta estabelecida foi cumprida ou não. Criei um contador na função (dNum_Desc) que soma a quantidade de meses em que houve descumprimento da meta e alimento o campo Num_Desc da tabela.  Passo para o próximo registro e refaço o processo até o final da tabela.

    Na pratica a função é muito rápida, mas para construir a função demorou um pouco, por isto eu suspeito que seria possível fazer o mesmo com a função DContar.
    Anexos
    Exemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (46 Kb) Baixado 11 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7030
    Registrado : 05/11/2009

    Re: [Resolvido]Dúvida - Utiliza DContar - Domínio Agregado por registro

    Mensagem  Alexandre Neves em 27/6/2017, 19:43

    Boa tarde,
    Se está resolvido, marque o "Resolvido"
    No entanto, pode ter o código mais limpo
    Código:
    Public Function Acerta_Tabela_Calculo1()
        Dim dNum_Desc As Integer, banco_multa As DAO.Database, tabela_multa As DAO.Recordset

        dNum_Desc = 0
        Set banco_multa = CurrentDb
        Set tabela_multa = banco_multa.OpenRecordset("TL_EXEMPLO")
       
        tabela_multa.MoveFirst
        Do While Not tabela_multa.EOF
            dNum_Desc = 0
            If tabela_multa!IND_META = ">=" Or tabela_multa!IND_META = "<" Then
                If Format(tabela_multa!JAN, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!FEV, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!MAR, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!ABR, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!MAI, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!JUN, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!JUL, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!AGO, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!Set, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!OUT, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!NOV, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!DEZ, "Standard") < Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
            ElseIf tabela_multa!IND_META = "<=" Or tabela_multa!IND_META = "=" Or tabela_multa!IND_META = ">" Then
                If Format(tabela_multa!JAN, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!FEV, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!MAR, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!ABR, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!MAI, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!JUN, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!JUL, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!AGO, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!Set, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!OUT, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!NOV, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
                If Format(tabela_multa!DEZ, "Standard") > Format(tabela_multa!META, "Standard") Then dNum_Desc = dNum_Desc + 1
            End If
            tabela_multa.Edit
            tabela_multa!Num_Desc = dNum_Desc
            tabela_multa.Update
            tabela_multa.MoveNext
        Loop
        MsgBox "Finalizado"
        tabela_multa.Close
        Set tabela_multa = Nothing
        banco_multa.Close
        Set banco_multa = Nothing
    End Function


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    MarceloBarroso
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 09/11/2015

    Re: [Resolvido]Dúvida - Utiliza DContar - Domínio Agregado por registro

    Mensagem  MarceloBarroso em 27/6/2017, 20:15

    A solução que eu dei não é a que eu buscava, porém resolve.

      Data/hora atual: 14/11/2018, 11:48