Nitinha Posted April 13, 2020 at 05:48 PM Report Share #617867 Posted April 13, 2020 at 05:48 PM (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 at 10:40 AM by Nitinha Link to comment Share on other sites More sharing options...
antseq Posted April 14, 2020 at 10:59 AM Report Share #617871 Posted April 14, 2020 at 10:59 AM 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 comment Share on other sites More sharing options...
Nitinha Posted April 14, 2020 at 11:27 AM Author Report Share #617873 Posted April 14, 2020 at 11:27 AM 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 comment Share on other sites More sharing options...
antseq Posted April 14, 2020 at 12:50 PM Report Share #617875 Posted April 14, 2020 at 12:50 PM 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 comment Share on other sites More sharing options...
Nitinha Posted April 14, 2020 at 04:03 PM Author Report Share #617876 Posted April 14, 2020 at 04:03 PM 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 comment Share on other sites More sharing options...
antseq Posted April 14, 2020 at 04:48 PM Report Share #617878 Posted April 14, 2020 at 04:48 PM (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 at 04:50 PM by antseq Link to comment Share on other sites More sharing options...
Nitinha Posted April 14, 2020 at 05:38 PM Author Report Share #617879 Posted April 14, 2020 at 05:38 PM Obrigada Link to comment Share on other sites More sharing options...
Nitinha Posted April 16, 2020 at 05:59 PM Author Report Share #617896 Posted April 16, 2020 at 05:59 PM Já agora, há hipótese de pôr o campo como memo uma vez que irá ter mais de 255 carateres? Link to comment Share on other sites More sharing options...
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