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]Consulta com Filtro no ListView

    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Consulta com Filtro no ListView

    Mensagem  Convidado 1/1/2013, 22:28

    Boa noite !
    Voltando pra pedir ajuda...

    Tenho um listView é Preenchido no Click de um botão com uma Consulta ...até ai tudo bem e funcionando mas preciso criar um filtro e buscando aqui no fórum encontrei exemplos que inclusive eu uso com ListBox, só que o mesmo não funcionou com o ListView .

    Na consulta tenho algo parecido com ..

    Select...
    WHERE (((Tbl_Manutencao.Oficina) Like [Forms]![Frm_Manutencao_Relatorios].[CBox_Oficina] & "*"))

    A consulta funciona mas no controle ListView da erro não encontra o paramento

    Alguém tem um Sugestão ?
    Obrigado !
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  JPaulo 2/1/2013, 09:12

    Bom dia Rafael e bom ano novo;

    Não entendi o que pretende, quer pressionar num item da ListView e aplicar o criterio a uma consulta ?



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Consulta com Filtro no ListView Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Consulta com Filtro no ListView Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Consulta com Filtro no ListView Folder_announce_new Instruções SQL como utilizar...
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 2/1/2013, 13:05

    Obrigado JPaulo por responder

    O que preciso na verdade é aplicar o filtro na consulta e preencher o ListView com a consulta de acordo com o critério informado via Combobox...

    Se eu executar a consulta e informar o Paramentro manualmente funciona mas preenchendo o ListView com a consulta nao funcionou ...apresenta o erro de paramentro não informado.

    Obs. O listview e preenchido normal com a consulta sem o criterio... mas quando coloco na consulta o "Where..." apresenta este erro de paramentro nao informado.
    Obrigado !
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  criquio 2/1/2013, 13:29

    Com a permissão dos colegas, já tentou no critério desse campo na consulta assim?

    Como "*" & Forms!NomeDoForm!NomeDaCombo & "*"

    Caso a combo tenha mais de uma coluna, talvez seja interessante colocar um campo oculto para ter o valor capturado e passar o nome desse campo no lugar da combo.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 2/1/2013, 15:35

    Obrigado Criquio pela resposta.

    Tentei também da forma que voce sugeriu acima e continua o mesmo erro...o comboBox é somente um coluna.

    Estou postando o exemplo ... no formulário deixei somente o controle de Oficina e data.

    https://dl.dropbox.com/u/19875180/Filtro_ListView.rar


    Agradeço a atenção !
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 2/1/2013, 16:01

    Boas Rafael, ListView é totalmente diferente de listBox...Crie uma função para o carregamento da lista, e nesta crie consultas VBA com o critério que deseja,

    Neste exemplo podes observar que utilizo duas SQL's, uma para uma data no form e outra para a data do sistema, e direciono para o caso específico.

    Então, crie uma consulta e SQL/VBA, aplique os critérios que deseja.. e no click do botão chame a função: Call fLoadList

    Código:



    '====================================================================================================================================
    'Códigos utilizados para a listView
    '====================================================================================================================================
    Private Function fLoadList()
    On Error GoTo TrataErro
    Dim StrAno As String

    StrAno = Nz(Me.cboAno.Value, "")
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ' Variáveis
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Dim rst As DAO.Recordset
            Dim I As Integer
            Dim StrSQL As String
       
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ' Carrega a SQL  para o recordsource
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If StrAno <> "" Then
                'SQL para tblAlunos
                StrSQL = "SELECT ID_Mens, Aluno_ID, CpMensalidade, CpEmissao, Format(CpValor,'Currency') as Valor1, Format(CpLanche,'Currency'), CpVencimento, CpDataPagto," _
                        & " Format(CpValorPago,'Currency') As Valor ,IIf([CpSituaçao]=-1,'PAGO ','DEVEDOR') AS Expr2 ," _
                        & " Format(cpVencimento,'yyyy') as AnoRef, Format((CpValor-CpValorPago) + CpLanche,'Currency') as Resid" _
                        & " FROM tblMensalidade WHERE Aluno_Id = " & Me.tx3 & "  And Format(cpVencimento,'yyyy') = '" & StrAno & "'" _
                        & " Order By ID_Mens;"
    Else
                'SQL para tblAlunos
                StrSQL = "SELECT ID_Mens, Aluno_ID, CpMensalidade, CpEmissao, Format(CpValor,'Currency') as Valor1, Format(CpLanche,'Currency'), CpVencimento, CpDataPagto," _
                        & " Format(CpValorPago,'Currency') As Valor ,IIf([CpSituaçao]=-1,'PAGO ','DEVEDOR') AS Expr2 ," _
                        & " Format(cpVencimento,'yyyy') as AnoRef, Format((CpValor-CpValorPago) + CpLanche,'Currency') as Resid" _
                        & " FROM tblMensalidade WHERE Aluno_Id = " & Me.tx3 & " And Format(cpVencimento,'yyyy')  = '" & Year(Date) & "'" _
                        & " Order By ID_Mens;"
    End If
                       
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ' Carrega o recordset basedo na SQL
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Set rst = CurrentDb.OpenRecordset(StrSQL, dbOpenDynaset)
             
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ' Limpa todos os ítens lista.
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            'Para a lstMensalidade
            lvxObj.ListItems.Clear
            'Para a lstMensalidade
            'lvxObj_1.ListItems.Clear
         
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ' Checa os valores presentes no recordset
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            If rst.BOF Then
                ' Se não foram retornado registros.. não há  necessidade de adicionar os ítens na lista
            Else
                'Se existe registros presentes.. adiciona registros na lista
                       
                '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                'Loop através de registros, adicionando cada item
                '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                rst.MoveFirst
               
                While Not rst.EOF
                    'Loop através de cada campo no conjunto de registros
                    For I = 0 To rst.Fields.Count
                        If I = 0 Then
                            ' Seta o valor e imagem para a primeira coluna, para recolocar o incone, retirar o ultimo parênteses e retirar a aspa simples
                            Set lstItem = lvxObj.ListItems.Add(, , Nz(Trim(rst(I)))) ', , "img3")
                            ' Seta o tooltiptext para o primeiro item
                            lstItem.ToolTipText = rst(I)
       
                            'Seta a primeira coluna como BOLD (Está desabilitado)
                            lstItem.Bold = True
                            '====================================================================
                   
                        ElseIf I < rst.Fields.Count Then
                       
                            ' set the subsequent columns, known as subitems.
                            lstItem.SubItems(I) = Nz(Trim(rst(I))) ', "")

                        End If
                    ' adiciona novo campo caso exista no recordset
                    Next I
               
                ' adiciona o próximo registro
                rst.MoveNext
                Wend
            End If
       
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ' Encerra e limpa o rst
        '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            rst.Close
           
            '====================================================================================
            'Carrega o ícone para a segunda coluna de acordo com a quantidade de linhas da lista
            For I = 1 To lvxObj.ListItems.Count
              ' lvxObj.ListItems(i).ListSubItems(1).ReportIcon = 1
            Next I
            '====================================================================================
    Me.MudaCor
    If Classifica = True Then Exit Function
    Me.ClassificaColuna

    Exit Function
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
        DoCmd.Hourglass False
        DoCmd.Echo True
    Exit Function
    TrataErro:
        Select Case err.Number
            Case 3075
                Resume Next
            Case 3464
                Resume Next
            Case 91
                Resume Next
            Case Else
                DoCmd.Hourglass False
                DoCmd.Echo True
                    MsgBox "Erro Gerado no: frmAlunos (btnNovaMat_Click)" _
                    & vbNewLine & "Erro Número: " & err.Number _
                    & vbNewLine & "linha: " & Erl _
                    & vbNewLine & "Descrição: " & err.Description _
                    & vbNewLine & "Por favor contate o Administrador de Sistema.", vbCritical, err.Number & ", linha:" & Erl
        End Select
    End Function


    Cumprimentos.
    Avelino João
    Avelino João
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 316
    Registrado : 10/03/2012

    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Avelino João 2/1/2013, 16:06

    rafaeljunio.ti Boa Tarde não é possivel te ajudar a resolver o erro no teu projecto se voce está a proteger Editor do Visual Basic com senha.


    .................................................................................
    Proaccess - Angola
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 2/1/2013, 16:15

    Senha do banco e Vba é 123
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 2/1/2013, 17:08

    Mais uma vez muito obrigado Piloto ! (Agora não errei seu nome srsr)

    Seguindo o seu exemplo postado conseguir resolver o meu problema mudando apenas algumas linhas no código

    'Declarei a variável
    Dim StrSql as string

    'depois carreguei a sql com o critério
    StrSql = "Select....Where Campo = "Combobox""


    'Depois setei i Recorset
    Set rs = CurrentDb.OpenRecordset(StrSql, dbOpenDynaset)


    E funcionou perfeitamente.

    Caso alguem precise segue o exemplo resolvido Senha: 123

    https://dl.dropbox.com/u/19875180/Filtro_ListView.rar


    Muito Obrigado Criquio e JPaulo também pela atenção!

    Avelino João
    Avelino João
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 316
    Registrado : 10/03/2012

    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Avelino João 2/1/2013, 17:11

    rafaeljunio.ti Ola ainda não tive tempo para analisar o teu projecto e poder te ajudar mais deixo aqui um link que mim ajudo a resolver o mesmo problema que tinha no meu projecto. http://www.macoratti.net/vb_lstv1.htm
    Obs.: Qualquer duvida dá o retorno


    .................................................................................
    Proaccess - Angola
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 2/1/2013, 18:19

    O Fórum agradece o retorno.
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 2/1/2013, 23:35

    So mais um Pergunta relacionada a esse tópico...

    No filtro funciona se eu colocar algum valor mas como faco pra em caso não seja informado nenhum valor no controle ele traz todos
    Estou fazendo dessa forma ..

    Where Tbl_Manutencao.Oficina like '" & CBox_Oficina & "'

    Ja tentei ta,be, das formas abaixo
    Where Tbl_Manutencao.Oficina = '" & CBox_Oficina & "'
    Where Tbl_Manutencao.Oficina "*" '" & CBox_Oficina & "'" "*"
    ...
    Obrigado !
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 3/1/2013, 00:41

    Podes direcionar a outra SQL caso nao tenha valor na cbo... observe o meu código acima...

    Ele checa se a combo está preenchida, caso não vai pra outra SQL sem filtro.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 3/1/2013, 01:12

    Sim Piloto !
    eu tinha pensado nisso também mas o problema e que tenho 4 combox de opções de filtro .. Ou seja o usuário pode tanto preencher uma,duas ou todas como também pode não preencher nenhuma então nesse caso eu teria que fazer varias sql.


    Alguma sugestão !

    Obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 3/1/2013, 15:24

    Observe esta SQL, ela vai concatenando o filtro de acordo com a cbo estár preenchida ou não:
    Código:

    StrSQL = "SELECT tabCondenasTotais.ID_CodCondenas, tabCondenasTotais.CpData AS DATA," _
            & "tabgranjas.CpNomeGranja AS GRANJA, tabCondenasTotais.CpTipo AS TIPO," _
            & "tabCondenasTotais.CpAbcesso AS ABCESSO, tabCondenasTotais.CpAerosacolite AS AEROSACULITE," _
            & "tabCondenasTotais.CpArtrite AS ARTRITE, tabCondenasTotais.CpAscite AS ASCITE," _
            & "tabCondenasTotais.CpAspectoRepugnante AS [ASPECTO REPUGNANTE], tabCondenasTotais.CpCaquexia AS CAQUEXIA," _
            & "tabCondenasTotais.CpCelulite AS CELULITE, tabCondenasTotais.CpColibacilose AS COLIBACILOSE," _
            & "tabCondenasTotais.CpColigranulatose AS COLIGRANULATOSE, tabCondenasTotais.CpContaminacao AS CONTAMINAÇÃO," _
            & "tabCondenasTotais.CpContusaoFratura AS [CONTUSÃO/FRATURA], tabCondenasTotais.CpDermatose AS DERMATOSE," _
            & "tabCondenasTotais.CpEscaldagemExcessiva AS [ESCALDAGEM EXCESSIVA]," _
            & "tabCondenasTotais.CpEvisceracaoRetardada AS [EVISCERAÇÃO RETARDADA]," _
            & "tabCondenasTotais.CpMarek AS MAREK, tabCondenasTotais.CpMaSangria AS [MA SANGRIA]," _
            & "tabCondenasTotais.CpNeolplasia AS NEOPLASIA, tabCondenasTotais.CpSalpingite AS SALPINGITE," _
            & "tabCondenasTotais.CpSepticemia AS SEPTICEMIA, tabCondenasTotais.CpSindromeHemorragica AS [SINDROME HEMORRAGICA]," _
            & "tabCondenasTotais.CpTumores AS TUMORES, tabCondenasTotais.Cpdoeca1 AS [DOENCA 1]," _
            & "tabCondenasTotais.Cpdoeca2 AS [DOENCA 2], tabCondenasTotais.Cpdoeca3 AS [DOENCA 3]," _
            & "tabCondenasTotais.Cpdoeca4 AS [DOENCA 4], tabCondenasTotais.Cpdoeca5 AS [DOENCA 5]" _
            & " FROM tabgranjas LEFT JOIN tabCondenasTotais ON tabgranjas.ID_Granja = tabCondenasTotais.ID_Granja" _
            & " WHERE (((tabCondenasTotais.ID_CodCondenas) Is Not Null)) And ((tabCondenasTotais.CpData >=#" & Format(Me.DataInicial, "mm/dd/yyyy") & "#) And (tabCondenasTotais.CpData <=#" & Format(Me.DataFinal, "mm/dd/yyyy") & "#))"
    If Me.CboGranja <> "" Then
      StrSQL = StrSQL & " And tabCondenasTotais.ID_Granja =" & Me.txtGranja & ""
    End If
    If Me.CboTipoAve <> "" Then
      StrSQL = StrSQL & " And tabCondenasTotais.CpTipo ='" & Me.CboTipoAve & "'"
    End If
      StrSQL = StrSQL & " ORDER BY tabCondenasTotais.CpData;"
    Me.lstConsulta.RowSource = StrSQL

    Da para adptar ao que pretende..

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 4/1/2013, 12:34

    Grande mestre Piloto resolveu meu problema!
    Desculpe a demora pelo retorno mas somente hoje consegui adaptar o codigo que me passou acima no meu projeto.


    Ficou da seguinte maneira..
    Comando = "SELECT...Where Tbl_Manutencao.Man_ID > 0 Order By Tbl_Manutencao.Dt_Inicio"

    If Me.CBox_Oficina <> "" Then
    Comando = Comando & "And Tbl_Manutencao.Man_Oficina like '" & CBox_Oficina & "'"
    End If

    If Me.CBox_Status <> "" Then
    Comando = Comando & "and Tbl_Manutencao.Man_Status like '" & CBox_Status & "' "
    End If


    Set rs = CurrentDb.OpenRecordset(Comando, dbOpenDynaset)



    Obrigado a todos pela ajuda !

    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 4/1/2013, 12:47

    Eu particularmente estou muito satisfeito com o seu desempenho, é muito bom quando apenas sugerimos possíveis soluções e o usuário se esforça para adaptar e não espera somente soluções prontas.

    Parabéns. Continue Assim!!!!

    Sucesso!

    HP.
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 4/1/2013, 14:48

    Verdade Piloto!

    Tenho aprendido bastante aqui no fórum com todos vocês.
    Sempre serei grato com atenção de todos !

    Obrigado mesmo !
    avatar
    Convidado
    Convidado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Convidado 4/1/2013, 17:51

    O Fórum agradece o retorno.

    Conteúdo patrocinado


    [Resolvido]Consulta com Filtro no ListView Empty Re: [Resolvido]Consulta com Filtro no ListView

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 00:15