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]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Compartilhe

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  diegojacob em Seg 11 Maio 2015, 20:31

    Boa tarde,
    possuo 03 tabelas (em diferentes banco de dados, porém, contendo os mesmos campos) e as vinculei em um mesmo banco de dados, ficando:

    tbl_test_01
    tbl_test_02
    tbl_test_03

    Possuo um Formulário "Pai" e um subformulário "Filho", e gostaria que ao lececionar através de uma combo, onde informa qual tabela eu quero para o subformulário "Filho", ele alterasse a "Fonte de Condrole" do Subformulário "Filho".

    Testei utilizar o seguinte código, mas não funcionou:


    Private Sub Select_tabela_AfterUpdate()

    Dim tbl_subform As String

    Select Case Me.Select_tabela (Nome da Combo)

    Case tbl_test_01

    tbl_subform = "SELECT * from tbl_test_01"
    Me.[subformFilho].Form.RecordSource = tbl_subform
    Me.[subformFilho].Requery

    Case tbl_test_02

    tbl_subform = "SELECT * from tbl_test_02"
    Me.[subformFilho].Form.RecordSource = tbl_subform
    Me.[subformFilho].Requery

    Case tbl_test_03

    tbl_subform = "SELECT * from tbl_test_03"
    Me.[subformFilho].Form.RecordSource = tbl_subform
    Me.[subformFilho].Requery

    End Select

    End Sub


    Gostaria de um suporte do amigos do Fórum para fazer funcionar esse código ou um outra solução para eu obter o resultado final.
    Ver anexo o resultado esperado.

    Obrigado.

    Diego

    daniloreiis
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 315
    Registrado : 14/02/2011

    Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  daniloreiis em Seg 11 Maio 2015, 20:40

    Olá boa tarde!

    poderia disponibilizar o projeto para melhor ajuda-lo ?


    .................................................................................
    Att, Danilo Reis
    -------------------------------------------------------------------------------------------------------------------------------------------------
    [Você precisa estar registrado e conectado para ver este link.]

    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  diegojacob em Ter 12 Maio 2015, 12:42

    Segue um exemplo conforme solicitado.

    Origado.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  JPaulo em Qua 20 Maio 2015, 11:47

    Olá;

    É no evento depois de atualizar;

    Código:
    Private Sub Select_tabela_AfterUpdate()
    Select Case Me.Select_tabela.Column(0)
            Case Is = "tbl_test_01"
        Me.subformFilho.Form.RecordSource = "SELECT * from tbl_test_01"
        Me.subformFilho.Form.Requery
            Case Is = "tbl_test_02"
        Me.subformFilho.Form.RecordSource = "SELECT * from tbl_test_02"
        Me.subformFilho.Form.Requery
            Case Is = "tbl_test_03"
        Me.subformFilho.Form.RecordSource = "SELECT * from tbl_test_03"
        Me.subformFilho.Form.Requery
    End Select
    End Sub


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

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

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  diegojacob em Qua 27 Maio 2015, 17:26

    Olá mestre JPaulo.

    Funcionou perfeitamente, o evento eu coloquei errado no exemplo!
    O problema estava na String que criei e não estava sendo reconhecida e a alteração do Case para Case is =...

    Segue o exemplo final para os usuários que precisarem.

    Muito obrigado.
    Anexos
    Exemplo_Fonte_de_Controle.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (28 Kb) Baixado 19 vez(es)

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  diegojacob em Qua 27 Maio 2015, 17:33

    Tópico finalizado!
    Não consigo mudar o status para resolvido, favor alterar para mim.

    Obrigado.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  JPaulo em Qui 28 Maio 2015, 15:49

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

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

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  diegojacob em Ter 02 Jun 2015, 18:48

    Mestre,
    teria como, ao alterar a tabela do subformulário, fazer com que altere também uma consulta de uma caixa de listagem?

    Eu uso uma caixa de listagem para selecionar um registro no subformulário e ao alterar a tabela do subformulário, ele alterava também a consulta da caixa de listagem (List box), pois tenho que selecionar o registro referente a tabela alterada, logo, tenho que trocar a consulta da lista para que fique com os mesmos registros da tabela selecionada.

    ex:

    ...

    Case Is = "tbl_test_01"

    'SubForm
    Me.subformFilho.Form.RecordSource = "SELECT * from tbl_test_01"
    Me.subformFilho.Form.Requery

    'Caixa de listagem (list box)
    Me.minha_lista.RecordSource = "SELECT * from Qry_test_01"
    Me.minha_lista.Requery

    Pois dessa forma está ocorrendo erro no RecordSource.



    Caio
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 301
    Registrado : 27/04/2015

    Re: [Resolvido]Alterar a tabela (Fonte de Controle) de um subformulário via vba

    Mensagem  Caio em Qui 24 Nov 2016, 13:25

    Conseguiu resolver diegojacob?

    Tenho a mesma dúvida!

      Data/hora atual: Dom 04 Dez 2016, 06:00