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


2 participantes

    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    avatar
    zcarloslopes
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 393
    Registrado : 28/10/2010

    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados Empty [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    Mensagem  zcarloslopes 19/6/2020, 16:19

    Boa tarde a todos,

    Venho mais uma vez pedir a vossa ajuda.

    Uso o código abaixo para pegar os valores de uma ListBox e passar para uma String separdos por ";".
    Código:
    Dim i As Integer, S As String

    If Me.MinhaListBox.ListCount > 0 Then
        
        With Me.MinhaListBox
            For i = 0 To .ListCount - 1
                S = S & .ItemData(i) & "; "
            Next
        End With
              
        S = Left(S, Len(S) - 2)
        
        Me.txtBox = S
        
    Else

    Me.txtBox = ""

    End If
    O que eu pretendo é que no caso de haverem items repetidos na ListBox, os mesmos fossem ignorados.

    Obrigado


    Última edição por zcarloslopes em 22/6/2020, 12:16, editado 2 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7922
    Registrado : 15/03/2013

    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados Empty Re: [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    Mensagem  Alvaro Teixeira 19/6/2020, 16:32

    Olá Carlos,

    Não pode fazer uma consulta agrupar, nem que seja oculta da ListBox?
    Será que não resolvia?
    Tente montar pequeno exemplo para se compreender e testar a dúvida.

    Abraço
    avatar
    zcarloslopes
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 393
    Registrado : 28/10/2010

    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados Empty Re: [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    Mensagem  zcarloslopes 22/6/2020, 08:55

    Obrigado ahteixeira pelo retorno,

    O agrupar, assim como o SELECT DISTINCT não resolvem. A linha da ListBos resulta de uma consulta com 2 tabelas relacionadas de "1 para Todos", em que lista os dados da tabela "1", mas os critérios estão na tabela "Todos".
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7922
    Registrado : 15/03/2013

    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados Empty Re: [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    Mensagem  Alvaro Teixeira 22/6/2020, 11:45

    Olá Carlos,

    Consegue montar um pequeno exemplo para se testar?

    Abraço
    avatar
    zcarloslopes
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 393
    Registrado : 28/10/2010

    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados Empty Re: [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    Mensagem  zcarloslopes 22/6/2020, 12:15

    Obrigado ahteixeira pelo retorno,

    Acabei por seguir uma nova abordagem com algumas reformulações. Fiz duas consulta em cascata, e na segunda já consegui agrupar.

    Outra forma de resolver seria pegar na String e retirar os duplicados

    Código:
    Function DeDupeString(ByVal sInput As String, Optional ByVal sDelimiter As String = "; ") As String '<---- Escolher Aqui o Delimitador

        Dim varSection As Variant
        Dim sTemp As String

        For Each varSection In Split(sInput, sDelimiter)
            If InStr(1, sDelimiter & sTemp & sDelimiter, sDelimiter & varSection & sDelimiter, vbTextCompare) = 0 Then
                sTemp = sTemp & sDelimiter & varSection
            End If
        Next varSection

        DeDupeString = Mid(sTemp, Len(sDelimiter) + 1)

    End Function

    Obrigado
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7922
    Registrado : 15/03/2013

    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados Empty Re: [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    Mensagem  Alvaro Teixeira 22/6/2020, 12:23

    Olá Carlos,

    Que bom que resolveu, obrigado pelo feedback.

    Abraço

    Conteúdo patrocinado


    [Resolvido]Passar valores de uma ListBox para uma String sem duplicados Empty Re: [Resolvido]Passar valores de uma ListBox para uma String sem duplicados

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 17/5/2024, 05:48