Ir para o conteúdo
modem

[Resolvido] Juntar vários records numa string

Mensagens Recomendadas

modem    0
modem

Olá pessoal,

preciso de fazer uma coisa estranha em Access:

Tenho uma query que me dá uma tabela deste tipo:

Cliente | Valor

A          | 2

A          | 6

A          | 15

B          | 4

C          | 6

C          | 8

e pretendo fazer uma query que agarre neste resultado e me dê uma tabela tipo:

Cliente | Valores

A          | 2;6;15

B          | 4

C          | 6;8

ou seja, que me transforme os diversos valores numa espécie de string...

Como é que posso fazer isto? Já estive a ver as funções existentes mas não encontrei nenhuma que me desse algo como isto. Suponho que tenha de fazer uma função em VBA, mas não é o meu forte.

Alguém pode ajudar?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Pessoalmente não conheco nenhum query que faça isso. Só em VBA.

Está a usar que versão e queres colocar essa informação noutra tabela ou para visualizar (lista, relatório, etc) ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
modem    0
modem

Olá,

estou a usar a versão 2003 e pretendo obter o resultado em query ou tabela, que depois vai ser inserida numa folha excel de forma automática usando o import external data.

A ideia seria criar uma função que fizesse isso e que pude-se ser incluida na query como as funções já existentes do Access. Mas como nunca fiz nenhuma coisa assim nem sei por onde começar, nem que tipo de argumentos passar.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
modem    0
modem

Já consegui! Estou maravilhado comigo mesmo :D

Criei uma função muito simples:

Dim ss As String

Dim Last_Client As Integer

Function ConvArray(Client As Integer, obj As String) As String

    If Last_Client = Client Then

        ss = ss & obj & ";"

        Last_Client = Client

    Else

        ss = obj & ";"

        Last_Client = Client

    End If

    ConvArray = ss

End Function

depois é só usar na query ConvArray(Cliente;valor) e definir o total para Max.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade