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

    Compartilhe

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

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

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

    Mensagem  Anderson Catarino em Ter 24 Out 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.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

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

    Mensagem  Assis em Ter 24 Out 2017, 17:22

    Anderson

    Quer postar a sua tabela ?


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

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

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

    Mensagem  CassioFabre em Ter 24 Out 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!

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

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

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

    Mensagem  Anderson Catarino em Qua 25 Out 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
    Carta Controlo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (651 Kb) Baixado 15 vez(es)
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

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

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

    Mensagem  CassioFabre em Qua 25 Out 2017, 12:32

    Bom dia,

    Estude a função filtraRegistros.

    Abraço.
    Anexos
    Carta Controlo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (605 Kb) Baixado 27 vez(es)


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

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

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

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

    Mensagem  Anderson Catarino em Qua 25 Out 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.
    avatar
    CassioFabre
    Developer
    Developer

    Respeito às Regras 100%

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

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

    Mensagem  CassioFabre em Qua 25 Out 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!

      Data/hora atual: Ter 21 Nov 2017, 19:14