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]Filtrar listbox através de caixa de texto

    avatar
    Anderson Catarino
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 80
    Registrado : 28/08/2017

    [Resolvido]Filtrar listbox através de caixa de texto Empty [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  Anderson Catarino 24/10/2017, 16:52

    Boa tarde.
    Tenho 4 caixas de texto para filtrar os valores de uma tabela carregada numa listbox.
    Posso pesquisar por: Produto, diâmetro, OP e fornecedor.
    Coloco na caixa produto por exemplo: PA (Aparece na listbox todos os produtos PA)
    Depois na caixa diâmetro coloco por exemplo: 2.5 (aparece na listbox todos os produtos com diâmetro 2.5 só que o que eu queria é que aparece-se só os PA diâmetro 2.5)

    *****************************************Para cada campo de consulta tenho o seguinte código****************************************
    Código:
    'PROCURAR
    Private Sub ProcurarProduto_Change()
    Dim strSql As String
    strSql = "SELECT CodRegisto,Descricao,Mat_Prima,Diametro,OP,Fornecedor,Peso,Forca,Alongamento,Nota,Data,Assinatura FROM RegistosFios where " & _
    "strConv(Descricao, 0, 1042) like '*" & StrConv(Me!ProcurarProduto.Text, 2, 1042) & "*'"
    Me!Lista.RowSource = strSql
    Me.registos = Me.Lista.ListCount
    Call Media (funçao que tenho para calcular a media da coluna )
    Call Min (funçao que tenho para calcular o  minimo da coluna )
    Call Max (funçao que tenho para calcular o maximo  da coluna )
    End Sub
    ****************************************************************************************************************************

    Tenho o mesmo código para pesquisar Diametro, OP e Fornecedor ... para mim o erro é por ai.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Filtrar listbox através de caixa de texto Empty Re: [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  Assis 24/10/2017, 17:22

    Anderson

    Quer postar a sua tabela ?


    .................................................................................
    *** Só sei que nada sei ***
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtrar listbox através de caixa de texto Empty Re: [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  CassioFabre 24/10/2017, 17:24

    Boa tarde,

    Nesses casos, o mais facil é criar o parametro concatenando uma string. Vou fazer algo generico aqui, e voce adapta às suas necessidades.
    Código:
    Dim strSql as string

    if IsNull(txtpa) = false then
    strSql = "pa = '" & txtpa & "'"
    end if

    if isnull(txtdiametro) = false then
        if strsql <> "" then
            strsql = strsql & ","
        end if

        strsql = "diametro= " & Replace(Format(txtdiametro, "#,##0.00"), ",", ".") & ""
    end if

    if isnull(txtOP) = false then
        if strsql <> "" then
            strsql = strsql & ","
        end if

        strsql = "op= '" & txtop & "'"
    end if

    if isnull(txtFornecedor) = false then
        if strsql <> "" then
            strsql = strsql & ","
        end if

        strsql = "fornecedor = '" & txtfornecedor & "'"
    end if

    strsql = "SELECT * FROM RegistosFios WHERE " & strsql & ""
    Me!Lista.RowSource = strSql
    Me.registos = Me.Lista.ListCount
    Call Media (funçao que tenho para calcular a media da coluna )
    Call Min (funçao que tenho para calcular o minimo da coluna )
    Call Max (funçao que tenho para calcular o maximo da coluna )

    Se der erro de sintaxe, veja se os campos de texto no sql estão com aspas simples e se os campos numéricos estão sem aspas simples, pois nao sei como definiu ai na suA tabela. Mas entenda a ideia e adapte ao seu projeto.

    Abraço.


    .................................................................................
    Só não tem código pra morte!
    avatar
    Anderson Catarino
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 80
    Registrado : 28/08/2017

    [Resolvido]Filtrar listbox através de caixa de texto Empty Re: [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  Anderson Catarino 25/10/2017, 09:35

    Obrigado pelas resposta.
    Não consegui adaptar o código porque não soube onde colocar o código.
    Vou deixar a minha base de dados.
    O formulário é o frmFiosEntrancados
    A tabela é a RegistosFios (a tabela EspecificacoesFios esta associada mas não interfere nesse caso)
    *****************************************************************************************************************
    Exemplo 1:

    Se eu pesquisar em produto por exemplo PA, vai me aparecer na listbox todos os produtos PA (76 registos), mas agora quero saber os valores de diâmetro 2.3 mm,  ai já vai me filtrar só os produtos PA diâmetro 2.3 mm (21 registos) (Objectivo conseguido porque só há produtos PA com 2.3mm não é fabricado outros produtos com 2.3mm senão daria errado tambem).

    Exemplo 2:

    Se eu pesquisar em produto por exemplo PA, vai me aparecer na listbox todos os produtos PA (76 registos), mas agora quero saber os valores de diâmetro 3.0 mm,  ai já vai me filtrar todos os produtos com 3.0 mm de diâmetro (PA, PE, EUROFLEX e LANKOFORCE), (30 registos) (Eu queria que aparecesse só os PA 3.0 mm, 8 registos)

    *******************************************************************************************************************
    Anexos
    [Resolvido]Filtrar listbox através de caixa de texto AttachmentCarta Controlo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (651 Kb) Baixado 37 vez(es)
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtrar listbox através de caixa de texto Empty Re: [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  CassioFabre 25/10/2017, 12:32

    Bom dia,

    Estude a função filtraRegistros.

    Abraço.
    Anexos
    [Resolvido]Filtrar listbox através de caixa de texto AttachmentCarta Controlo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (605 Kb) Baixado 101 vez(es)


    .................................................................................
    Só não tem código pra morte!
    avatar
    Anderson Catarino
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 80
    Registrado : 28/08/2017

    [Resolvido]Filtrar listbox através de caixa de texto Empty Re: [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  Anderson Catarino 25/10/2017, 14:20

    Obrigado pela ajuda CassioFabre.
    Era o que eu precisava, os meus conhecimentos ainda são muito básicos dai ter tido tanta dificuldade para ultrapassar esse "problema", vou tentar compreender melhor o código que fizeste.
    Problema resolvido.
    CassioFabre
    CassioFabre
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 731
    Registrado : 18/01/2013

    [Resolvido]Filtrar listbox através de caixa de texto Empty Re: [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  CassioFabre 25/10/2017, 17:50

    Boa tarde,

    Bom que resolveu o problema. O fórum agradece o retorno.

    Abraço.


    .................................................................................
    Só não tem código pra morte!

    Conteúdo patrocinado


    [Resolvido]Filtrar listbox através de caixa de texto Empty Re: [Resolvido]Filtrar listbox através de caixa de texto

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 07:42