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]Deletar todos os itens selecionador na ListBox

    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 20/11/2015

    [Resolvido]Deletar todos os itens selecionador na ListBox Empty [Resolvido]Deletar todos os itens selecionador na ListBox

    Mensagem  Ednardo 30/3/2018, 02:03

    Boa Noite, preciso de uma ajuda, tenho uma listbox em que preciso remover apenas os itens selecionados, porém quando vou percorrer os itens selecionados ao excluir o primeiro os demais perdem a seleção e acaba excluindo apenas um, alguem sabe como posso resolver isso?

    For Each Obj In Me.LstItens.ItemsSelected
    Me.LstItens.RemoveItem (Obj)
    Next Obj

    For i = 0 To Me.LstItens.ListCount - 1
    If Me.LstItens.Selected(i) = True Then
    Me.LstItens.RemoveItem (i)
    End If
    Next i

    Ambos os casos quando exclui o primeiro item os demais perdem a seleção e o for para, como posso fazer para contornar isso?
    Fernando Bueno
    Fernando Bueno
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2115
    Registrado : 13/04/2012

    [Resolvido]Deletar todos os itens selecionador na ListBox Empty Re: [Resolvido]Deletar todos os itens selecionador na ListBox

    Mensagem  Fernando Bueno 30/3/2018, 17:19

    Boa tarde;

    Talvez assim..

    Código:
    Dim x As Variant
    Dim y As String
    For Each x In Me!Lista0.ItemsSelected
    CurrentDb.Execute "DELETE * FROM tbl_exemplo WHERE Id = " & Me!Lista0.Column(0, x) & ";"
    y = True
    Next
    If y = True Then
       MsgBox "Concluido", vbInformation, "Aviso"
       Me!Lista0.Requery
       End If


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Resolvido]Deletar todos os itens selecionador na ListBox 16rzeq
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 20/11/2015

    [Resolvido]Deletar todos os itens selecionador na ListBox Empty Re: [Resolvido]Deletar todos os itens selecionador na ListBox

    Mensagem  Ednardo 30/3/2018, 17:49

    Sim daria certo se a base de dados fosse uma tabela, seria bem simples, porém a base de dados é uma lista de valores os quais eu informo os valores com o método "AddItem". Isso acontece talvez por uma falha do VB que perde toda a seleção da ListBox ao remover um item qualquer, a solução que encontrei foi salvar os índices dos itens selecionados em uma Matriz e na sequência deletar usando a Matriz, o código ficou da seguinte maneira...

    Código:

    Dim Obj As Variant
    Dim Matriz() As Boolean
    Dim i As Integer
    Dim x As Long

    i = 0
    For Each Obj In Me.LstItens.ItemsSelected 'Percorre toda a lista verificando se há itens selecionados
         i = i + 1
    Next Obj
                    
    If i > 0 Then 'Caso existam itens selecionados executa o procedimento
         i = Me.LstItens.ListCount - 1
         For x = 0 To i 'Percorre toda a lista
              ReDim Preserve Matriz(x) 'Reserva mais um espaço de armazenamento na matriz
              Matriz(x) = Me.LstItens.Selected(x) 'Salva na matriz o status de seleção do índice se True ou False
         Next x
         Do While i <> -1 'Percorre toda a lista novamente verificando quais os índices são True
              If Matriz(i) = True Then
                   Me.LstItens.RemoveItem (i) 'Se o índice for True remove o mesmo da lista
              End If
              i = i - 1 'Retrocede um item, perceba que percorremos a lista deletando os registros selecionados de trás para frente
         Loop
    End If

    Espero ter ajudado a futuros colegas que tenha a mesma dificuldade que eu tive, pois talvez não seja possível solucionar na internet por isso tive que me virar da forma antiga "Lógica de Programação".
    Fernando Bueno
    Fernando Bueno
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2115
    Registrado : 13/04/2012

    [Resolvido]Deletar todos os itens selecionador na ListBox Empty Re: [Resolvido]Deletar todos os itens selecionador na ListBox

    Mensagem  Fernando Bueno 31/3/2018, 02:37

    Boa noite;

    Legal que solucionou agradecemos o retorno.


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Resolvido]Deletar todos os itens selecionador na ListBox 16rzeq
    crysostomo
    crysostomo
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2677
    Registrado : 23/01/2018

    [Resolvido]Deletar todos os itens selecionador na ListBox Empty Re: [Resolvido]Deletar todos os itens selecionador na ListBox

    Mensagem  crysostomo 25/7/2019, 13:35

    Bom dia , não estou conseguindo. Quero selecionar o item na lista e excluir direto na tabela


    .................................................................................
    Obs.: Coloque somente as partes defeituosas para que possamos encontrar e entender  o problema mais rápido para lhe ajudar. Disponho.
    Uma mão ajuda a outra.
    Feliz aquele que transfere o que sabe e aprende o que ensina.

    Conteúdo patrocinado


    [Resolvido]Deletar todos os itens selecionador na ListBox Empty Re: [Resolvido]Deletar todos os itens selecionador na ListBox

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 17:01