Jump to content
Nitinha

Concatenação

Recommended Posts

Nitinha

 

Boa tarde,

Tenho 1 tabela em access na qual tem 2 campos, num tem o ID e no outro nomes

ID             Nomes

1              Ana

2             Maria

1            Silvia

2           Cristina

Queria que ficasse assim

ID         Nomes

1          Ana, Silvia

2         Maria, Cristina

 

Alguém pode-me ajudar arranjar q solução.

Podem dar-me informação de quais campos deveriam constar?

Public Function ConcatRelated(strField As String, _    

strTable As String, _    

Optional strWhere As String, _   

Optional strOrderBy As String, _   

Optional strSeparator = ", ") As Variant 

On Error GoTo Err_Handler    

'Purpose:   Generate a concatenated string of related records.    

'Return:    String variant, or Null if no matches.    

'Arguments: strField = name of field to get results from and concatenate.   

'           strTable = name of a table or query.    

'           strWhere = WHERE clause to choose the right values.    

'           strOrderBy = ORDER BY clause, for sorting the values.    

'           strSeparator = characters to use between the concatenated values.    

 

Obrigada

Edited by Nitinha

Share this post


Link to post
Share on other sites
antseq
17 horas atrás, Nitinha disse:

Alguém pode-me ajudar arranjar q solução.

Podem dar-me informação de quais campos deveriam constar?

Viva,

É um tiro no escuro... Access é uma coisa do passado e nem sei porque alguém faria uma função destas [depois de anos e anos de programação, consegui sobreviver sem isto]...

Mas para tentar ajudar, do que leio nesta documentação "http://allenbrowne.com/func-concat.html" deveria fazer algo do tipo:

SELECT ID,  ConcatRelated("Nomes", "NOMETABELA", "ID = " & [ID])
FROM NOMETABELA;

 

Share this post


Link to post
Share on other sites
Nitinha

Bom dia,

Cada 1 trabalha com as ferramentas que lhes dão.

Esse é o código que estou a usar, quero saber se estou a pôr os campos no sítio certo, por acho que aqui é que estarei a fazer asneira.

 

'          strField = name of field to get results from and concatenate.   - Nome do campo que irei criar

'           strTable = name of a table or query.    - Query que estou a usar

'           strWhere = WHERE clause to choose the right values.    - campo que quero unir

'           strOrderBy = ORDER BY clause, for sorting the values.    - campo pela qual quero ordenar

'           strSeparator = characters to use between the concatenated values.    -  separador que irei usar

 

Obrigada

Share this post


Link to post
Share on other sites
antseq
1 hora atrás, Nitinha disse:

'          strField = name of field to get results from and concatenate.   - Nome do campo que irei criar

'           strTable = name of a table or query.    - Query que estou a usar

'           strWhere = WHERE clause to choose the right values.    - campo que quero unir

'           strOrderBy = ORDER BY clause, for sorting the values.    - campo pela qual quero ordenar

'           strSeparator = characters to use between the concatenated values.    -  separador que irei usar

Eu segui as mesmas instruções acima, e salvo erro falta-me um "DISTINCT".

SELECT DISTINCT ID,  ConcatRelated("Nomes", "NOMETABELA", "ID = " & [ID])
FROM NOMETABELA;

assumindo que a sua tabela tem o nome "NOMETABELA" e os campos "ID, Nomes" que indicou inicialmente:

strField = "Nomes"

strTable = "NOMETABELA"

strWhere = "ID = " & [ID]

Os outros campo são opcionais o que daria o comando acima que indiquei (agora com "DISTINCT")

* se não funcionar, indique o exemplo completo: o nome da tabela, os campos da mesma, o comando que executou, o "erro" ou "output" errado que originou

cps,

Share this post


Link to post
Share on other sites
antseq
46 minutos atrás, Nitinha disse:

Deu erro, está-me a passar algo que não estou a descobrir

Essa é a base original, a ideia é fazer 1 tabela para usar no mail merge do word

https://drive.google.com/file/d/19DlZTzziWrm_bgNz47s-3aqfFehE_Lqu/view?usp=sharing

Obrigada

O comando que precisa é este:

SELECT DISTINCT ID, ConcatRelated("Mes", "Teste1", "ID = '" & [ID] & "'", "QuotasSolicitadas")
FROM Teste1

Para obter este resultado:

ID	Expr1001
100	Agosto; Setembro; Outubro; Novembro; Julho; Agosto; Setembro; Outubro
101	Abril; Maio
102	Março; Junho; Janeiro; Julho; Novembro
103	Outubro; Novembro; Dezembro; Janeiro; Fevereiro; Março

O seu campo "ID" é uma "string" portanto no filtro (3º parâmetro tem de estar entre ' ')

cps.

* já não abria o Access, há anos..., até fiquei assustado, de o ter instalado no computador... :)

Edited by antseq

Share this post


Link to post
Share on other sites
Nitinha

Já agora, há hipótese de pôr o campo como memo uma vez que irá ter mais de 255 carateres?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.