Ciao nman, grazie per il tempo e la proposta che hai pubblicato!
Appena riesco la provo e riporto un fdbk..
Nel frattempo posto un paio di soluzioni anche io.
1 Tramite query, niente tabelle di passaggio niente vba
2 Con VBA, una funzione semplicissima
****************************
Campo1: Mettiamo il campo da indicizzare, ipotiziamo che si chiami C1 e deriva dalla Tab1
Campo2 calcoliamo il ranking con la seguente formula:
Ranking: (Select Count (*) from Tab1 Where [C1] < [emp_Tab1].[C1]+1;)
emp_Tab1 è il nome della tabella che ho inserito nella query xò per poter fare questo tipo di espressione gli assegno un alias tramite le proprietà
Il risultato sarà questo:
Valori di C1:
Prova
pippo
pippo
Pluto
Nonno
Risultato:
Prova 1
pippo 2
pippo 2
pluto 3
nonno 4
Se volete una sequenza unica raggruppate il campo con una query precedente al ranking..
Questo sistema però è lento! più del VBA perchè esegue una query per ogni record letto...
Se leggete da una query che fa già diversi calcoli fate notte..
Questa invece la funzione VBA per calcolare il ranking
Applicate questo metodo solo se devete farlo su una base dati non superiore ai 32k di record perchè il VBA non va oltre.. :( va in overflow...
codice:Option Compare Database Public Indicizza As Integer Function Conteggia(testo As String) Indicizza = Indicizza + 1 Conteggia = Indicizza End Function