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]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  rg3915 30/7/2013, 03:18

    Estava estudando o Maestro do Avelino
    e queria fazer uma ListBox ListaCodProduto mostrar apenas os itens selecionados na ListaSubCategoria.

    Ou seja, eu queria que a Origem da Linha de ListaCodProduto fosse igual a apenas alguns dos itens que eu selecionasse (seleção múltipla) em ListaSubCategoria.

    Eu tentei, mas sem sucesso:

    Código:
    Private Sub ListaSubcategoria_Click()

        Dim mysql As String
       
        Dim filtro As String
        Dim Sel As Variant
        Dim j As Boolean

        filtro = "in("
        For Each Sel In Me!ListaSubcategoria.ItemsSelected
            filtro = filtro & Me!ListaSubcategoria.Column(0, Sel) & ","
            j = True
        Next
       
        filtro = Mid(filtro, 1, (Len(filtro) - 1)) & ")"
        filtro = "IDProduto OR " & filtro

        mysql = "SELECT IDProduto, CodProduto FROM Produtos" _
            & " WHERE (((Subcategoria) = " & filtro & "))" _
            & " ORDER BY CodProduto;"
           
        Me.ListaCodProduto = Null
        Me.ListaCodProduto.RowSource = mysql

    End Sub
    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]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  criquio 30/7/2013, 13:15

    Talvez fosse o caso de você limpar a segunda lista a cada vez que selecionar uma linha da primeira e então definir com todas linhas selecionadas da primeira. Algo assim no evento "Ao clicar" ou "Ao alterar" da primeira listbox:

    Me.SegundaListbox.RowSource = ""

    Percorre as linhas da primeira listbox e vai adicionando as linhas selecionadas na segunda listbox com o AddItem


    .................................................................................
    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.

    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  rg3915 30/7/2013, 13:54

    Ola criquio, tanto com
    Código:
    Me.ListaCodProduto = Null
    como com
    Código:
    Me.ListaCodProduto.RowSource = ""
    dá certo.

    Acho que o problema está na montagem do filtro, como te falei, é uma adaptação de um código do Avelino, mas eu sei que para montar um filtro no SQL eu deveria usar algo como
    Código:
    WHERE (((Subcategoria) = 1 OR 2))
    por exemplo, mas eu não entendo direito como montar esse código junto com a variável 'filtro'.

    Aceito outra forma também.
    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]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  criquio 30/7/2013, 14:47

    Se você só precisa adicionar os itens à segunda listbox, pode fazer algo assim no evento "Após atualizar" da primeira listbox:

    Código:
    Dim L As Variant

    Me.Listbox2.RowSourceType = "Value List"
    Me.Listbox2.RowSource = ""

    For Each L In Me.Listbox1.ItemsSelected
        Me.Listbox2.AddItem Me.Listbox1.ItemData(L)
    Next N


    .................................................................................
    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.

    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  rg3915 30/7/2013, 15:08

    Quase, mas ainda não.
    Eu queria filtrar os itens da primeira e retornar na segunda com seleção multipla, mas não deu ainda.

    Ah, detalhe: na segunda são produtos de cada categoria do primeiro, ou seja, é filtrado por categoria.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  Avelino Sampaio 30/7/2013, 15:38

    Ola!

    Aonde vc arrumou este OR

    filtro = "IDProduto OR " & filtro

    Depois de contruido , fica algo assim:

    filtro = IDproduto OR IN(3,9,10,18)

    Tire o OR para o resultado ficar assim:

    filtro = IDproduto IN(3,9,10,18)

    Outro erro é o resultado desta linha:

    " WHERE (((Subcategoria) = " & filtro & "))"

    Depois de montado fica assim:

    WHERE sbcategoria = IDProduto IN(3,9,10,18)

    Analise e tente mais um pouco

    Sucesso!


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


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  rg3915 30/7/2013, 17:19

    Grande Avelino, tentei

    Código:
    Private Sub ListaSubcategoria_Click()

        Dim j As Boolean
       

        filtro = "(IDSubcategoria)="
        For Each Sel In Me!ListaSubcategoria.ItemsSelected
            filtro = filtro & Me!ListaSubcategoria.Column(0, Sel) & " OR "
            j = True
        Next
       
        filtro = Mid(filtro, 1, (Len(filtro) - 1)) & ")"
        filtro = "IDProduto " & filtro
       
        mysql = "SELECT IDProduto, CodProduto FROM Produtos" _
            & " WHERE ((" & filtro & "))" _
            & " ORDER BY CodProduto;"
           
        Me.ListaCodProduto = ""
        Me.ListaCodProduto.RowSource = mysql

    End Sub

    Mas nada ainda.
    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  rg3915 31/7/2013, 14:33

    Consegui:

    Código:
    Private Sub ListaSubcategoria_Click()

        Dim i As Variant, sql As String

        For Each i In Me.ListaSubcategoria.ItemsSelected
            sql = sql & " OR IDSubcategoria = " & Me.ListaSubcategoria.ItemData(i) & ""
        Next

        sql = "SELECT * FROM Produtos WHERE " & Mid(sql, 5)

        Me.ListaCodProduto.RowSource = sql
       
    End Sub

    Obrigado a todos.
    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]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  criquio 31/7/2013, 15:07

    Ah tá. Agora que entendi exatamente o que queria. É algo semelhante à dica que dei na mensagem n° 15 desse tópico.


    .................................................................................
    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.

    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  rg3915 31/7/2013, 18:00

    ... é... esqueci de usar a busca, foi mal. Mas valeu a dica.

    Conteúdo patrocinado


    [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox Empty Re: [Resolvido]Origem de uma ListBox baseado numa seleção múltipla de outra ListBox

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 14:17