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]Como verificar se um controle de outro form está ativo/existe

    Compartilhe
    avatar
    Eloirp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 153
    Registrado : 15/06/2013

    [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Eloirp em Sab 19 Jul 2014, 04:30

    Tenho um controle chamado BuscarProd que existe em vários forms e quero carregar ele com um valor de um form POP clicando duas vezes sobre o controle e aí carrega o valor em BuscarProd, porém este form POP é uma consulta cruzada e pode ser aberto em qualquer lugar do sistema através de CTRL+2, porém se o usuário clicar duas vezes quando estiver com o form ao "pai" que não tenha o campo vai dar erro... Então preciso colocar uma condição de saber de o controle está ativo eu resolvo isso... o que facilita é que tenho um form principal (Main_Menu) que possui um subform (SubFormAplicacao) onde carrego os forms com Parent.SubFormAplicacao.SourceObject... então a condição é sempre verificar se Forms!Main_Menu!SubFormAplicacao.Form!BuscarProd está ativo...

    Acredito que pela imagem anexa é possível entender com mais clareza...


    Código no form POP:
    Private Sub Produto_DblClick(Cancel As Integer)

       If condição??? Then
           Forms!Main_Menu!SubFormAplicacao.Form!BuscarProd = Me.Produto
           Forms!Main_Menu!SubFormAplicacao.Form!OEM.Value = Null
           Forms!Main_Menu!SubFormAplicacao.Form!CR.Value = Null
       End If
           
    End Sub
    Anexos
    Form X Pop.pdf
    Você não tem permissão para fazer download dos arquivos anexados.
    (273 Kb) Baixado 7 vez(es)
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Alexandre Neves em Sab 19 Jul 2014, 08:35

    Bom dia,
    If CurrentProject.AllForms.Item(NomeObjecto).IsLoaded Then


    .................................................................................
    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
    avatar
    Eloirp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 153
    Registrado : 15/06/2013

    Re: [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Eloirp em Dom 20 Jul 2014, 14:22

    Olá Alexandre, obrigado pelo ajuda!
    Apliquei o modelo que você me passou mas não acontece nada... fiz vários testes em diferentes forms (com e sem o item BuscarProd), mas em nenhum caso acontece algo.

    Fiz assim:
    Private Sub Produto_DblClick(Cancel As Integer)
       If CurrentProject.AllForms.Item(BuscarProd).IsLoaded Then
           Forms!Main_Menu!SubFormAplicacao.Form!BuscarProd = Me.Produto
           Forms!Main_Menu!SubFormAplicacao.Form!OEM.Value = Null
           Forms!Main_Menu!SubFormAplicacao.Form!CR.Value = Null
       End If
    End Sub


    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Alexandre Neves em Dom 20 Jul 2014, 14:39

    Boa tarde,
    Tem de colocar o nome entre aspas
    If CurrentProject.AllForms.Item("BuscarProd").IsLoaded Then


    .................................................................................
    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
    avatar
    Eloirp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 153
    Registrado : 15/06/2013

    Re: [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Eloirp em Seg 21 Jul 2014, 01:18

    Alterei conforme o seu exemplo, mas não funcionou! Pois da erro e diz que objeto está fechado ou não existe!

    Meu aplicativo provavelmente é diferente dos demais por trabalhar com um subform no form principal (main_menu) e qdo chama um form pelo menu abre dentro deste form... apenas alguns pop não abrem neste subform.
    Anexei o Access com os forms envolvidos para que, se quiser dar uma olhada, talvez ajude...
    Claro que pode entrar pressionando shift para poder ver o código sem travar, pois ao abrir normalmente esconde o Access...

    login: teste
    senha: 1234

    Para chamar o form onde preciso colocar esta instrução é o cons_CR_Pop e chama ele pelo CTRL+2, aí já deixei o produto como valor padrão e basta dar dois cliques para rodar a instrução...
    avatar
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Alexandre Neves em Seg 21 Jul 2014, 09:47

    Bom dia,
    Em formato não reconhecido. Coloque em 2003/2007


    .................................................................................
    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
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3385
    Registrado : 04/04/2010

    Re: [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Avelino Sampaio em Seg 21 Jul 2014, 09:52

    Olá!

    Eu não olhei o seu projeto mas uma alternativa seria vc utilizar o tratamento de erro.

    Ou utiliza um simples "On error resume next" ou intercepte o número do erro para gerar uma mensagem ao usuário


    On error goto TrataErro
     Seu código
    Sair:
     Exit Sub
    TrataErro:
     If err.number = xxxx then
       'Abra a caixa de mensagem
       msgbox " Sua mensagme..."
     else
       msgbox err.Description  & " Número: " & err.number
     end if
     resume sair:


    Sucesso!


    Última edição por Avelino Sampaio em Seg 21 Jul 2014, 13:01, editado 1 vez(es)
    avatar
    Eloirp
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 153
    Registrado : 15/06/2013

    Re: [Resolvido]Como verificar se um controle de outro form está ativo/existe

    Mensagem  Eloirp em Seg 21 Jul 2014, 12:51

    Valeu Avelino! Problema resolvido....
    Valeu Alexandre pela ajuda... até tentei converter, mas dá uma mensagem que existem recursos que somente podem ser utilizados na versão atual e não deixa salvar no formato anterior...

      Data/hora atual: Qui 17 Ago 2017, 02:56