|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2004
Città: Bust Piqual
Messaggi: 1409
|
[VBA access] "Somma" di stringhe
Spero di non aver sbagliato sezione!
Ho un problema con access ho una zabella fatta in questo modo: codice provincia --------------------- MARCO MI GIOVANNI VA LUCA CO MARCO BG MARCO BS ALBERTO TO GIOVANNI GE Come faccio a creare una query che mi dia questo output codice provincia --------------------- MARCO MI - BG - BS GIOVANNI VA - GE LUCA CO ALBERTO TO Ho trovato questo modulo VBA ma non fa quello che voglio fare io Public Function Concatena(ByVal StudenteID As String, ByVal Nome As String, ByVal Separatore As String) As String Static s_strStudenteID As String Static s_strOutput As String ' Verifico se si tratta di un nuovo studente If s_strStudenteID <> StudenteID Then ' Memorizzo lo studente s_strStudenteID = StudenteID ' Inizializzo la variabile di output con il nome dello studente s_strOutput = Nome Else ' Concateno il nome s_strOutput = s_strOutput & Separatore & Nome End If ' Valorizzo il valore di ritorno della funzione Concatena = s_strOutput End Function Da abbinare a questa istruzione SQL SELECT StudenteID, MAX(Concatena(StudenteID, Nome, ', ')) AS Nomi FROM Studenti GROUP BY StudenteID; Avete qualche suggerimento? |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 611
|
Quote:
SELECT DISTINCT(Concatena(StudenteID, Nome, ', ')) AS Nomi FROM Studenti Quella di prima era sbagliata perchè ti restituiva l'idstudente quando non era possibile perchè tu ne concatenavi più di uno. La funzione concatena la modificherei così: 1. parametri: a. Nome studente 2. ciclerei su tutti i record con nomestudente = parametro 3. Concatenerei quindi le province 4. Return della stringa concatenata Dovrebbe bastare ![]() |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2004
Città: Bust Piqual
Messaggi: 1409
|
So di chiedre troppo ma non sono molto ferrato di programmazione in access.
Mi scriverestre almeno il ciclo con i comandi per scorrere nei record. Avevo pensato a un do while fino a EOF ma non so come assegnare a una variabile il numero dei record e soprattuto come collegarmi al db |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:51.