33. Jak zliczyć unikatowe rekordy na formularzu?

Oczywiście żadne Count(), czy Sum() tu nie pasują, bo nie obsługują "unikatowości". Trzeba napisać własną funkcję:
Public Function UnikalneCount(tbPole, wyzwalacz) 
On Error Resume Next 
Dim c As New Collection, rs As Object 
    Set rs = Me.RecordsetClone 
    rs.MoveFirst 
    Do 
        c.Add 1, CStr(rs(tbPole)) 
        rs.MoveNext 
    Loop Until rs.EOF 
    UnikalneCount= c.Count 
End Function 
Teraz wystarczy w jakims polu tekstowym napisac:
=UnikalneCount("kolA", Count([kolA]))
i otrzymamy tam ilość unikalnych wartości w polu [kolA]. Funkcja sprytnie :-) wykorzystuje to, ze do kolekcji nie można dodać drugi raz tego samego klucza.
Zwracam uwagę na wyzwalacz, który - jak pisze Krzysztof Naworyta - niby kompletnie nic nie robi ... Ale powoduje automatyczne odświeżenie wyniku po dodaniu nowego rekordu, usunięciu wiersza, czy
zmianie w polu podliczanym.

Krzysztof Pozorek