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


3 participantes

    [Resolvido]Listbox filtrada por combobox

    Brunoreiss
    Brunoreiss
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 46
    Registrado : 08/03/2014

    [Resolvido]Listbox filtrada por combobox Empty [Resolvido]Listbox filtrada por combobox

    Mensagem  Brunoreiss 28/8/2014, 05:14

    Pessoal,
    bom dia!

    Tenho uma listbox carregada através de uma consulta do access e alguns combos para filtrar os dados.

    O meu código esta da seguinte forma:

    Código:

    SELECT TBL_DADOS.IDCodPCubo, TBL_DADOS.DataImplant, TBL_DADOS.Mes, TBL_DADOS.Ano, TBL_DADOS.Status, TBL_DADOS.Fase
    FROM TBL_DADOS
    WHERE (((TBL_DADOS.Mes) Like [Formulários]![ListaDeValores]![cmbMes] & "*") AND ((TBL_DADOS.Ano) Like [Formulários]![ListaDeValores]![cmbAno] & "*") AND ((TBL_DADOS.Status) Like [Formulários]![ListaDeValores]![cmbStatus] & "*") AND ((TBL_DADOS.Fase) Like [Formulários]![ListaDeValores]![cmbFase] & "*"));

    O problema é o seguinte:

    O codigo desta forma, quando carregado o formulário com a lista, a lista não carrega todos os dados do banco de dados para que depois eu possa filtrar com as combos, ele ja carrega filtrado os dados que tenham valor no campo FASE, os Demais registros não aparecem.

    Se eu remover o comando ((TBL_DADOS.Fase) Like [Formulários]![ListaDeValores]![cmbFase] & "*"), a lista e carregada inteira e eu consigo filtrar os dados por Mes, Ano e Status numa boa.


    O que pode estar acontecendo de errado ?

    O que eu preciso é quando carregar o formulário com a listbox, todos os dados apareçam e eu possa filtrá-los através das combos e não apenas apareça os registros relacionados ao campo Fase.

    Será que vocês poderiam me dar mais esta força?

    Para ficar mais claro, segue o meu BD em anexo.

    Obrigado a todos mais uma vez.
    formiga10x
    formiga10x
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 818
    Registrado : 11/09/2013

    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  formiga10x 28/8/2014, 08:28

    Acho que seria mais ou menos isto que quer.

    Código:
    Sub AtuaLista()

    Form_ListaDeValores.Lista6.RowSource = " Select * From TBL_DADOS Where mes & ano & status & fase Like " & _
                                           " '*" & Form_ListaDeValores.cmbMes & "*' & '*" & Form_ListaDeValores.cmbAno & "*' " & _
                                           "& '*" & Form_ListaDeValores.CmbStatus & "*' & '*" & Form_ListaDeValores.cmbFase & "*'"

    Form_ListaDeValores.Lista6.Requery

    End Sub
    Segue o BD Já alterado.
    Anexos
    [Resolvido]Listbox filtrada por combobox AttachmentBASE.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (68 Kb) Baixado 95 vez(es)


    Última edição por formiga10x em 28/8/2014, 08:49, editado 2 vez(es)


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  Alexandre Neves 28/8/2014, 08:42

    Bom dia,
    Se bem percebi:
    1 - Elimine a consulta SelectListaDados
    2 - Elimina a origem dos dados na Lista6
    3 - No acontecimento AoAbrir do formulário coloque:
    Lista6.RowSource = "SELECT IDCodPCubo, DataImplant, Mes, Ano, Status, Fase FROM TBL_DADOS"
    4 - No acontecimento AoFazerClique de btnLimpa, acrescente
    Lista6.RowSource = "SELECT IDCodPCubo, DataImplant, Mes, Ano, Status, Fase FROM TBL_DADOS"
    5 - No acontecimento DepoisDeActualizar das caixas de combinação
    retire: Me.Lista6.Requery
    coloque:
    Dim strFiltro As String
    If Len(cmbMes) > 0 Then strFiltro = " and Mes='" & cmbMes & "'"
    If Len(cmbAno) > 0 Then strFiltro = strFiltro & " and Ano='" & cmbAno & "'"
    If Len(CmbStatus) > 0 Then strFiltro = strFiltro & " and Status='" & CmbStatus & "'"
    If Len(cmbFase) > 0 Then strFiltro = strFiltro & " and Fase='" & cmbFase & "'"
    If strFiltro <> "" Then strFiltro = " WHERE" & Mid(strFiltro, 5)
    Lista6.RowSource = "SELECT IDCodPCubo, DataImplant, Mes, Ano, Status, Fase FROM TBL_DADOS" & strFiltro

    6 - Nomeie de forma normalizada. Não precisa campo Ano, o ano está integrado no campo DataImplant. O campo ano, a existir, deve ser numérico


    .................................................................................
    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
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  Alexandre Neves 28/8/2014, 08:43

    Olá formiga,
    Já estava a preparar resposta.
    Abraço,


    .................................................................................
    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
    formiga10x
    formiga10x
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 818
    Registrado : 11/09/2013

    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  formiga10x 28/8/2014, 08:51

    Tranquilo Alexandre.
    Tenha um bom dia amigo.


    .................................................................................
    Abraço
    Formiga10x

    Sempre que possível poste o bd ou parte dele, com uma explicação bem clara e objetiva do que quer.
    “Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste - Richard Nixon”
    Formiga10x

    "Lembro do exato momento em que me dei conta que boa parte de minha vida foi dedicada a localizar erros em meus próprios programas."
    - Maurice Vicent Wilkes
    Brunoreiss
    Brunoreiss
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 46
    Registrado : 08/03/2014

    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  Brunoreiss 28/8/2014, 14:23

    Formiga,

    Era aquilo mesmo que eu queria, muito obrigado.


    Alexandre
    Obrigado por sua ajuda também. O Help do Formiga já atendeu as minhas necessidades, mas o seu exemplo também é interessante e vou testá-lo.


    Depois já volto aqui para dar a resposta.

    Mais uma vez, obrigado ao dois.

    Abs.
    Brunoreiss
    Brunoreiss
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 46
    Registrado : 08/03/2014

    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  Brunoreiss 28/8/2014, 15:12

    Alexandre,
    Em relação ao seu código de filtro, devo colocar todo ele em cada acontecimento das combos "Depois de Atualizar" certo ?


    Alexandre e Formiga
    Agora, aproveitando, vou inserir também duas textbox como data inicial e data final para filtrar também os dados na lista e depois usar mais os combos para filtrar
    novamente.

    Pergunto:
    1 - Qual codificação devo fazer para este trecho de seleção de datas destas duas textbox ?
    2 - Se não for abusar, existe uma maneira de controlar a data que o usuário esta digitando? tipo: se ele digitar 31/09/2014 dispara uma mensagem dizendo que o mês não tem 31 e ele precisa digitar novamente?

    Mais uma vez obrigado.
    Brunoreiss
    Brunoreiss
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 46
    Registrado : 08/03/2014

    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  Brunoreiss 31/8/2014, 06:53

    Pessoal,

    Apenas para finalizar,

    Consegui resolver meu problema com o código abaixo:

    Código:

    Form_ListaDeValores.Lista6.RowSource = " SELECT TBL_DADOS.IDCodPCubo, TBL_DADOS.DataImplant,TBL_DADOS.Mes,TBL_Dados.Ano,TBL_Dados.Status, TBL_Dados.Fase, TBL_Dados.Critico From TBL_DADOS WHERE (((TBL_DADOS.DataImplant) Between [txtDataIni] And [txtDataFim])) AND IIf(TBL_DADOS.Critico=-1,'SIM ','NÃO') Like '*" & Form_ListaDeValores.cmbCritico & "*' AND mes & ano & status & fase Like " & _
                                          " '*" & Form_ListaDeValores.cmbMes & "*'    & '*" & Form_ListaDeValores.cmbAno & "*' " & _
                                        " & '*" & Form_ListaDeValores.CmbStatus & "*' & '*" & Form_ListaDeValores.cmbFase & "*' " & _
                                          " ORDER BY IDCodPCubo"
    Form_ListaDeValores.Lista6.Requery



    Conteúdo patrocinado


    [Resolvido]Listbox filtrada por combobox Empty Re: [Resolvido]Listbox filtrada por combobox

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 05:03