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

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Marcos Minoru 23/9/2014, 11:21

    Anexei um BD para demonstrar o que preciso:

    No formulário "CriarLista" tenho uma listbox com todos clientes cadastrados. Ao selecionar um cliente e clicar em "ADICIONAR >" ele vai criando uma lista do lado direito.
    O problema é que para conseguir transferir de uma listbox para a outra, precisei definir a listbox Lista como "Lista de valores". Seria possível clicar no botão "Filtrar relatório" e abrir o relatório filtrado com os itens da Listbox Lista (LstLista)?
    Anexos
    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) AttachmentFiltrar a partir de ListBox (Lista de valores).zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (31 Kb) Baixado 37 vez(es)


    Última edição por Marcos Minoru em 23/9/2014, 20:46, editado 1 vez(es)
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3711
    Registrado : 04/04/2010

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Avelino Sampaio 23/9/2014, 14:14

    Olá!

    Estude a dica 36

    http://www.usandoaccess.com.br/dicas/dicas-praticas-de-access-parte-4.asp?id=1&idlista=188#inicio

    Bom estudo!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso irrestrito ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Marcos Minoru 23/9/2014, 14:37

    Avelino, daria para utilizar seu exemplo para uma listbox com o "Tipo de origem da linha: Lista de valores"?
    Teria como olhar o BD anexo para dizer se teu exemplo funcionaria no meu caso?
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Assis 23/9/2014, 15:03

    Marcos

    No Botão "Filtrar Relatório" ao fazer click

    Dim i As Integer
    Dim strFiltro As String
    strFiltro = "in("
    For i = 0 To Me!LstClientes.ListCount - 1
    If Me!LstLista.Selected(i) = False Then
    strFiltro = strFiltro & "'" & Me!LstLista.Column(0, i) & "',"
    End If
    Next
    strFiltro = Mid(strFiltro, 1, (Len(strFiltro) - 1)) & ")"
    strFiltro = "Cliente " & strFiltro

    DoCmd.OpenReport "ListaClientes", acViewPreview, , strFiltro


    .................................................................................
    *** Só sei que nada sei ***
    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Marcos Minoru 23/9/2014, 15:59

    Assis, fez exatamente o que precisava nesse exemplo anexado. No entanto, achei que se resolvesse nesse exemplo, eu conseguiria implementar no BD que estou desenvolvendo (que é maior e infelizmente não pude estar anexando).

    Neste exemplo anexo, o relatório é acoplado.
    Já no BD que estou desenvolvendo e iria implementar, possuo 1 relatório principal desacoplado e, dentro deste, um sub-relatório acoplado. Tive que dividir o relatório desta forma para poder utilizar o cabeçalho ocupando toda largura da folha e o sub-relatório em 2 colunas.

    O que acontece é que o botão "Filtrar relatório" deveria antes de abrir o relatório principal, pedir para refazer a consulta.

    Nesse primeiro exemplo era: Abra o relatório com os itens da Lista filtrado.
    O que preciso: Refaça a consulta com os itens da Lista e abra o relatório principal.


    Espero que tenha entendido e possa me ajudar a fazer as alterações necessárias.
    Em anexo uma modificação...
    Anexos
    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) AttachmentFiltro em relatório com sub-relatório.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (78 Kb) Baixado 32 vez(es)
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Assis 23/9/2014, 19:13

    Marcos

    Veja e serve fiz algumas alterações.

    Para marcar um cliente dá um click no nome, para desmarcar volta a dar um click.
    Tem dois formulário:
    o seu e o que eu fiz, escolha


    .................................................................................
    *** Só sei que nada sei ***
    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Marcos Minoru 23/9/2014, 19:32

    Ficou bacana clicar e transferir para a Lista. Mas no meu caso, não poderei utilizar desta forma, pois ao clicar na linha ele me abre o registro do cliente.

    Agora, o outro modo ficou perfeito. Só precisa me dizer como fez para o cabeçalho ocupar o espaço de duas colunas. Cheguei até criar um tópico para resolver isto, tinha resolvido utilizando um relatório principal para o cabeçalho e subrelatorio para os registros serem exibidos em 2 colunas...
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Assis 23/9/2014, 19:46

    Marcos
    Ponha uma no Click e outra no DuploClick

    Com o relatorio aberto click com o mouse do lado direito, depois configurar pagina e na aba colunas coloco 2


    .................................................................................
    *** Só sei que nada sei ***
    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Marcos Minoru 23/9/2014, 20:12

    Então Assis...

    Eu já quebrei a cabeça com isso de colunas. Antes eu definia a seção detalhe com 2 colunas e o cabeçalho ficava dividido também em 2 colunas, então não podia usar a largura total da folha para o cabeçalho. Cheguei até criar um tópico para isso, ninguém me alertou que eu quem estava me precipitando, achei que realmente era um problema. Inclusive, a idéia do relatório com subrelatório foi dada pelo Avelino.

    O problema agora é ter que alterar todos os relatórios com subrelatório.
    Seria muito difícil fazer o botão "Filtrar relatório" refazer a consulta do subrelatório e pedir para abrir o relatório principal?

    Antes era assim que atuava este botão, com o código passado pelo Avelino:

    Private Sub BtnFiltrar2_Click()
    Dim varItm As Variant
    Dim ss As String
    Dim strSql As String
    Dim qry As QueryDef

      ss = "-33"
      For Each varItm In Me.LstClientes2.ItemsSelected
          ss = ss & ", " & Me.LstClientes2.ItemData(varItm)
      Next varItm
     
      ss = "Código IN (" & ss & ")"

    '---------------------------------------------------------------------------------
    'Esta parte remonta a escrita da consulta gráfica, incorporando os itens selecionados.
    '----------------------------------------------------------------------------------    
    strSql = "SELECT * FROM tblClientes WHERE [x];"
    strSql = Replace(strSql, "[x]", ss) 'anexa o filtro a escrita
    Set qry = CurrentDb.QueryDefs("qryClientes2_rev") 'Passa a consulta para variável
    qry.SQL = strSql 'reescreve a consulta com o filtro atual
    '-------------------------------------------------------------------------

    DoCmd.OpenReport "RltClientes1_rev", acViewPreview
    End Sub



    Eu tinha uma lista com todos os clientes, esta lista tinha seleção multipla simples. Eu selecionava todos que precisava e clicava para filtrar com o código acima. Só que o problema era ter que procurar os clientes rolando a barra de rolagem vertical. Pois pesquisando, desmarcava a seleção que já havia feito...
    Daí tive esta idéia de ir filtrando na Lista de clientes, selecionando e transferindo para a Lista ao lado, para a partir desta gerar o relatório filtrado.
    Só não soube como alterar este código para funcionar na nova Lista...
    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Marcos Minoru 23/9/2014, 20:46

    O que desejo, é criar uma forma de poder pesquisar os clientes e conseguir selecioná-los para gerar o relatório.
    Acredito que ficaria até melhor ao invés de transferir para outra listbox, simplesmente eu mudar a listbox para subformulário contínuo e colocar checkbox.
    Tentei alterar para subformulário mas tive um problema por isso optei por esse método ai. Vou criar um outro tópico e ver se consigo ajuda...

    Marcos Minoru
    Marcos Minoru
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 88
    Registrado : 22/08/2014

    [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores) Empty Re: [Resolvido]Relatório filtrado a partir de uma ListBox (Lista de valores)

    Mensagem  Marcos Minoru 23/9/2014, 20:59

    http://maximoaccess.forumeiros.com/t20663-checkbox-no-subformulario-bloqueando-ao-fazer-pesquisa#151752

    Dê uma olhada, acredito que desta forma fique mais organizado para o fim que desejo...

      Data/hora atual: 17/4/2021, 18:18