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]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 : 381
    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)
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7258
    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  ahteixeira 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 : 381
    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".
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7258
    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  ahteixeira 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 : 381
    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
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7258
    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  ahteixeira 22/6/2020, 12:23

    Olá Carlos,

    Que bom que resolveu, obrigado pelo feedback.

    Abraço

      Data/hora atual: 20/6/2021, 02:42