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

    Exibir todos os registros quando o filtro na consulta origem não receber valor

    Compartilhe

    EdContramão
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 21/04/2018

    Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  EdContramão em 5/12/2018, 17:42

    Saudações pessoal.

    Preciso que o subform (Agenda_SubformTodos) seja recarregado de acordo com a data selecionada no textbox (txtDataSelect) assim que chamar o evento "Após Atualizar" desta textbox, Maaaaas... Se nenhuma data for selecionada, o subform deve exibir todos os registros!!!

    Já está funcionando quando tem uma data selecionada, quando não tem, o subform fica sem registros.
    Já tem uma consulta com filtro no campo datainicial na origem do subform.
    Forms!Agenda!Agenda_SubformTodos!txtDataSelect

    Funfa, mas preciso exibir todos os registros qnd não houver data selecionada. scratch

    Desde já agradeço a atenção
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  ronaldojr1 em 6/12/2018, 15:04

    boa tarde
    tente usar a propriedade recordsource para recriar os dados do subformulario.

    segue exemplo:
    Me.subformulario.RecordSource = "Select * from NomeTabela Order by NomeCampo"

    EdContramão
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 21/04/2018

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  EdContramão em 7/12/2018, 18:18

    Então. ..

    Ainda não funfou

    No textbox "txtSelectData", no evento Após Atualizar coloquei : Forms!Agenda!Agenda_subformTodos.requery

    Com a intenção de fazer o subformulario atualizar porém filtrando os registros de acordo com a data selecionada.
    No evento Ao Carregar do subformulario coloquei:
    Algo assim, Se o campo txtSelectData não for nulo, a propriedade recordsource vai usar essa data para trazer os registros, SE NÃO, traga todos.

    Mas após atualizar a textbox txtSelectData não consigo fazer o subformulario recarregar usando o requery  cherry

    Onde está faltando algo?
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  ronaldojr1 em 7/12/2018, 18:48

    boa tarde,
    vc pode enviar parte do bd para analisarmos?

    vc tentou usar desse jeito?
    Me.subformulario.RecordSource = "Select * from NomeTabela Order by NomeCampo"

    lembrando que a propriedade RecordSouce exige uma consulta SQL no formato de string, ou seja, texto.


    EdContramão
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 21/04/2018

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  EdContramão em 7/12/2018, 19:08

    Então. ..

    No evento Ao Carregar do subformulario coloquei:

    If not isnull(Forms!Agenda!txtSelectData)then
      Dim strAgenda, DataAgenda as String
      DataAgenda = Forms!Agenda!txtSelectData

      StrAgenda ="Select * from_
         & "where DataInicial =" & DataAgenda
         RecordSource =StrAgenda
    Else
       Me.recordsource ="Select *  from agenda order by DataInicial"
    End If

    Isso está no evento ao carregar do subformulario, penso que conseguindo fazer com que ele seja recarregado após inserir uma data no campo do formulário principal (Usando o evento Após Atualizar da textbox, ele filtraria os registros.

    Procede?
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  ronaldojr1 em 7/12/2018, 20:04

    boa tarde,
    Isso está no evento ao carregar do subformulario, penso que conseguindo fazer com que ele seja recarregado após inserir uma data no campo do formulário principal (Usando o evento Após Atualizar da textbox, ele filtraria os registros.

    Procede?
    sim, procede.
    acho q o seu erro esta pq vc esta colocando o seu codigo no lugar errado. tente colocar no evento
    ao carregar do form principal.
    Fiquei na duvida na questao do campo usado para filtrar a data, ele fica no sub ou no form principal?

    'tente fazer mais ou menos assim:
    If not isnull(Me.SeuSubFormulario!txtSelectData)then
     Dim strAgenda, DataAgenda as String
     DataAgenda = me.txtSelectData 'nao entendi muito bem aqui. vc tem o mesmo campo tanto no subformulario quanto no form principal?

     'por se tratar de data coloque entre # para evitar erros. e caso o resultado vier diferente do que vc espera converta a data
     'para o formato americado na clausula sql where.
     'exemplo: "where DataInicial =#" & Format(DataAgenda,"mm/dd/yyyy") & "#"

     StrAgenda ="Select * from_
        & "where DataInicial =#" & DataAgenda & "#"

        Me.SeuSubFormulario.RecordSource = StrAgenda 'nao esqueça de colocar o Me.
    Else
      Me.SeuSubFormulario.RecordSource ="Select *  from agenda order by DataInicial"
    End If

    EdContramão
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 21/04/2018

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  EdContramão em 8/12/2018, 13:56

    Então...

    Ronaldojr1

    O campo (txtSelectData) onde insiro a data e que tem o código no evento Após Atualizar, está no form principal(Agenda), após inserir a data o subformulario Agenda_subformTodos deveria ser recarregado, e assim trazer só os registros com a data inserida.
    Coloquei o ponto de interrupção no evento Após Atualizar do campo txtSelectData no form Agenda para acompanhar, mas quando chega em: forms!agenda!agenda_subformTodos.requery deveria "saltar" para o evento carregar do subformulario subformTodos (correto?) mas não acontece.

    EdContramão
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 21/04/2018

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  EdContramão em 8/12/2018, 14:34

    Acabei de testar o seguinte:

    Coloquei o código que estava no evento Ao Carregar do subformulario Agenda_subformTodos, no evento Current do mesmo subformulario e funcionou, aparentemente não causou nenhum conflito, depois parou de funcionar e provocou outros erros
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  IvanJr. em 9/12/2018, 00:51

    Adapte o arquivo em anexo ao seu cenário
    Anexos
    exemplo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (36 Kb) Baixado 7 vez(es)

    EdContramão
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 21/04/2018

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  EdContramão em 11/12/2018, 14:21

    Funfou

    IvanJr, obrigado pela força! E aos demais também todas as dicas me acrescentaram
    .
    O exemplo era exatamente o que eu estava tentando fazer.
    Não sabia que usando FilterOn na textbox do form principal teria esse efeito no subform, nem tinha tentado usá-lo fazendo referência ao subform.

    Mais uma vez obrigado senhores.
    Resolvido!!!
    cheers
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  IvanJr. em 11/12/2018, 15:14

    O fórum agradece o retorno. Não esqueça o resolvido no tópico. Sucesso.


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 375
    Registrado : 01/08/2011

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  ronaldojr1 em 13/12/2018, 12:56

    Bom dia IvanJr,
    Achei bem interessante sua solução, em muitos casos
    sera bem mais simples desta maneira.
    Obrigado pela contribuição, ja add este uso no meu repertorio rs
    E boa sorte com o resto do desenvolvimento do seu BD EdContramão

    Sucesso
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

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

    Re: Exibir todos os registros quando o filtro na consulta origem não receber valor

    Mensagem  IvanJr. em 13/12/2018, 13:32

    Ronaldo, por vezes já peguei o caminho mais difícil quando na verdade sempre tem outro mais simples. De tanto apanhar nessa vida fui aprendendo alguns macetes. Sucesso.


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.

      Data/hora atual: 16/12/2018, 11:22