Nitinha 0 Posted April 13, 2020 Report Share Posted April 13, 2020 (edited) 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 April 14, 2020 by Nitinha Link to post Share on other sites
antseq 83 Posted April 14, 2020 Report Share Posted April 14, 2020 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; Link to post Share on other sites
Nitinha 0 Posted April 14, 2020 Author Report Share Posted April 14, 2020 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 Link to post Share on other sites
antseq 83 Posted April 14, 2020 Report Share Posted April 14, 2020 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, Link to post Share on other sites
Nitinha 0 Posted April 14, 2020 Author Report Share Posted April 14, 2020 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 Link to post Share on other sites
antseq 83 Posted April 14, 2020 Report Share Posted April 14, 2020 (edited) 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 April 14, 2020 by antseq Link to post Share on other sites
Nitinha 0 Posted April 14, 2020 Author Report Share Posted April 14, 2020 Obrigada 😉 Link to post Share on other sites
Nitinha 0 Posted April 16, 2020 Author Report Share Posted April 16, 2020 Já agora, há hipótese de pôr o campo como memo uma vez que irá ter mais de 255 carateres? Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now