MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação

    Compartilhe

    marcelobb
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 16/10/2014

    [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação

    Mensagem  marcelobb em Qui 16 Out 2014, 16:11

    Prezados,
    Já consegui resolver inúmeras dúvidas consultando este fórum, mas desta vez preciso da ajuda de vocês para encontrar uma solução específica.
    Estou utilizando pela primeira vez o Formulário de Navegação disponível no Access 2013, porém não consigo fazer referência a um sub-formulário que é apresentado por ele.

    Vamos ao cenário:

    Criei um formulário de Navegação de dois níveis denominado “F_PLANO”

    Neste formulário há um botão de navegação no primeiro nível denominado: “BT_PLANOS” e um botão de navegação no segundo nível denominado “BT_LISTA_PLANOS”
    Associado a este “BT_LISTA_PLANOS” eu tenho como  “Nome de Destino de Navegação” o formulário “F_PLANO1” que possui um formulário “F_PLANO1_SUB” que apresenta os dados da tabela “T_PLANO1” no modo padrão “Folha de Dados”.

    O formulário “F_PLANO1” possui um botão “BT_NOVO” que abre o formulário "F_DETALHE_PLANO1" , este por sua vez permite ao usuário criar novos registros na tabela “T_PLANO1” de forma mais facilitada pois o formulário detalhe está no modo padrão “Formulário Simples” , o que facilita ao usuário visualizar os dados que está inserindo.

    O problema:  não consigo fazer referência no VBA ao formulário/subformulário “F_PLANO1”/”F_PLANO1_SUB”  para que haja um  Requery dentro do “F_PLANO” toda a vez que eu insiro dado através do formulário “F_DETALHE_PLANO1”.

    Estou usando o seguinte código ao fechar o formulário “F_DETALHE_PLANO1” (depois de inserir algum registro):

    Forms!F_PLANO!SUB_PLANOS!F_PLANO1!F_PLANO1_SUB1.Form.Requery.   O Access informa que não conseguiu localizar o F_PLANO1

    Já tentei outras variantes e nada também. Estou ficando sem ideias.
    Anexos
    Banco Planos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (111 Kb) Baixado 20 vez(es)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação

    Mensagem  Noobezinho em Sex 17 Out 2014, 17:47

    Olá Marcelo

    Deixe te explicar um acoisa:

    Você tem 2 formulários diferente e cada um teu seu subformulário:

    essa sintaxe está errada:

    Forms!F_PLANO!SUB_PLANOS!F_PLANO1!F_PLANO1_SUB1.Form.Requery

    Se deseja  estando dentro do F_PLANO1”/”F_PLANO1_SUB referenciar o formulário F_PLANO para dar um requery,
    a sintaxe é a seguinte:

    Forms!F_PLANO.Requery

    Viu como é simples?

    Veja que se tua relação entre as tabelas do formulário Principal F_PLANO e F_PLANO1_SUB1 estiverem corretas, quando der um
    requery no formulário Principal, o mesmo acontecerá no seu subformulário.

    Vou deixar aqui como referenciar um subformulário de um outro formulário: digamos que seja o F_PLANO1_SUB1 (Dar um requery nele)

    Forms!F_PLANO1!F_PLANO1_SUB1.form.Requery

    Abraços

    Nb


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    marcelobb
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 16/10/2014

    Re: [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação

    Mensagem  marcelobb em Sex 17 Out 2014, 20:58

    Meu caro,

    Agradeço pela ajuda, porém sua solução não é aplicável no meu caso.

    A sintaxe que você sugeriu eu já havia tentado, porém sem sucesso.

    Ocorre que o formulário "F_PLANO" é um formulário do tipo Navegação e isto faz toda a diferença.

    Eu encontrei um relato bem semelhante do meu caso neste forum:

    [Você precisa estar registrado e conectado para ver este link.]

    A sintaxe sugerida pela solução apontada deste fórum seria:

    Forms![F_ATAC_PLANO]![SUB_PLANOS].Form.[F_ATAC_PLANO1_SUB].Requery

    Note que SUB_PLANOS é a estrutura de subformulário criada pelo formulário de navegação F_ATAC_PLANO.

    Apenas não publiquei esta informação como uma provável solução pois está ocorrendo um erro intermitente agora.
    Tem alguns momentos que o formulário realiza o requery corretamente e outras vezes que este requery falha.

    Estou pesquisando ainda, mas ainda não entendi pq isto está ocorrendo.

    Gostaria muito de encontrar uma solução concreta e compartilhar com todos, pois certamente será uma situação corriqueira para os que utilizarem estes recurso do Access (Formulário de Navegação: disponível no menu Criar / Navegação).


    marcelobb
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 16/10/2014

    Re: [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação

    Mensagem  marcelobb em Sex 17 Out 2014, 21:25

    Prezados,

    A solução que eu tinha encontrado neste fórum está super correta!

    [Você precisa estar registrado e conectado para ver este link.]

    Realmente a sintaxe que precisa ser usada nestes casos é:

    [Forms]![Navigation Form]![NavigationSubform].Form![subIssuesRep].Requery

    (se quiser alterar o RecordSource antes: [Forms]![Navigation Form]![NavigationSubform].Form![subIssuesRep].Form.RecordSource = IssuesSQL)

    No meu caso concreto a sintaxe que resolveu foi:


    Forms!F_ATAC_PLANO!SUB_PLANOS.Form!F_ATAC_PLANO1_SUB.Requery

    Por mais "estranho" que pareça, você não faz referência ao diretamente ao formulário que está contido como subformulário do formulário de navegação (no meu caso o F_ATAC_PLANO), mas sim ao seu subformulário (F_ATAC_PLANO_SUB).

    Quando eu testei esta solução a princípio não funcionou pois coloquei este código no botão que verificava o preenchimento do formulário pop-up (F_DETALHE_PLANO1) e o fechava. Quando eu coloquei este código no evento Ao fechar deste formulário pop-up passo a funcionar sempre.

    Espero que minha dúvida ajude outros. Obrigado!

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação

    Mensagem  Noobezinho em Sex 17 Out 2014, 22:14

    Marcelo

    Tinha postado e então vi que postou.

    Realmente eu li o artigo que disponibilizou e realmente é um tanto estranho.

    Parabéns amigo!!

    Deve ter soltado uma  dúzia de fogos de artifício né?

    Lavou a alma Laughing Laughing

    E obrigado pro compartilhar !

    Grande abraço

    Nb


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    marcelobb
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 16/10/2014

    Re: [Resolvido]Fazer referência no VBA a um subformulário que é "Nome de Destino de Navegação" em um Formulário de Navegação

    Mensagem  marcelobb em Sex 17 Out 2014, 22:59

    Sem dúvida!! Eu perdi um dia inteiro com isto.

    Obrigado pela força!

    Abraços,

    Marcelo

      Data/hora atual: Sex 09 Dez 2016, 13:27