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


2 participantes

    Referência Cruzada - Empresas Holdings

    avatar
    Thiabin
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 08/08/2016

    Referência Cruzada - Empresas Holdings Empty Referência Cruzada - Empresas Holdings

    Mensagem  Thiabin 27/9/2021, 16:41

    Olá, bom dia a todos.

    Preciso de uma ajuda com a(s) função(ões) a ser(em) utilizada(s) em uma coluna de uma consulta para encontrar o código de uma empresa (primeira holding). Exemplificando, tenho uma tabela com as colunas cod_empresa, nom_empresa e holding, sendo esta última coluna o código da empresa que é "dona" (holding) da empresa consultada:

    cod_empresa      nom_empresa         holding
    01                         AAA Ltda
    02                         BBB Ltda                01
    03                         CCC Ltda
    04                         DDD Ltda               03
    05                         EEE Ltda                02
    06                         FFF Ltda
    07                         GGG Ltda               01
    08                         HHH Ltda
    09                         III Ltda                     07
    10                         JJJ Ltda                  05

    Neste caso, a empresa AAA Ltda é dona da empresa 02 e 07, a empresa BBB Ltda é dona da empresa 05, a empresa CCC Ltda é dona da empresa 04, a empresa EEE Ltda é dona da empresa 10, e assim por diante. Note que a empresa 10 é controlada pela empresa 05, que por sua vez, é controlada pela empresa 02, que por sua vez é controlada pela empresa 01.

    Preciso criar uma consulta com uma coluna que mostre a "primeira" holding (holding_final), conforme resultado abaixo:

    cod_empresa      nom_empresa         holding        holding_final
    01                         AAA Ltda                                      01
    02                         BBB Ltda                01                  01
    03                         CCC Ltda                                     03
    04                         DDD Ltda               03                   03
    05                         EEE Ltda                02                  01
    06                         FFF Ltda                                       06
    07                         GGG Ltda               01                  01
    08                         HHH Ltda                                     08
    09                         III Ltda                     07                 01
    10                         JJJ Ltda                  05                  01


    Consegui utilizar fórmulas de Índice e Corresp no excel, mas não estou conseguindo utilizar formulas correspondentes no Access.

    Desde já agradeço a ajuda.
    Anexos
    Referência Cruzada - Empresas Holdings Attachmentexemplo.xlsx
    Você não tem permissão para fazer download dos arquivos anexados.
    (10 Kb) Baixado 5 vez(es)
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3845
    Registrado : 22/11/2016

    Referência Cruzada - Empresas Holdings Empty Re: Referência Cruzada - Empresas Holdings

    Mensagem  DamascenoJr. 28/9/2021, 02:54

    Resolvido com recursividade

    Função
    Código:
    Public Function fncHoldingFinal(ByVal varCodEmpresa, ByVal varHolding) As Integer

        If Nz(varHolding, 0) = 0 Then
            fncHoldingFinal = varCodEmpresa
        Else
            fncHoldingFinal = fncHoldingFinal(varHolding, Nz(DLookup("holding", "tblEmpresas", "cod_empresa = " & varHolding), 0))
        End If

    End Function
    Anexos
    Referência Cruzada - Empresas Holdings AttachmentbdRecursividade.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (31 Kb) Baixado 15 vez(es)


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 22/11/2024, 14:26