Benutzung auf eigene Gefahr ! |
Beschreibung |
Die Funktionen ermitteln die Anzahl der Datensätze in einer Tabelle oder Abfrage, ohne den Zeiger zu verschieben. Die drei Prozeduren unterscheiden sich durch die Art der übergebenen Datentypen (String oder RecordSet-Objekt), die dritte Variante kann auch in den Tabellen fremder Datenbanken die Datensätze zählen. |
VBA-Quelltext |
'*** Variante 1 Public Function AnzahlDatensätze(RecSet As DAO.Recordset) As Long Dim LeseZeichen As String If RecSet.Type = dbOpenTable Then AnzahlDatensätze = RecSet.RecordCount ElseIf RecSet.RecordCount = 0 Then AnzahlDatensätze = 0 Else LeseZeichen = RecSet.Bookmark RecSet.MoveLast AnzahlDatensätze = RecSet.RecordCount RecSet.Bookmark = LeseZeichen End If End Function '*** Variante 2 Public Function AnzahlDatensätze(RecSet As String) As Long AnzahlDatensätze = DCount("*", RecSet) End Function '*** Variante 3 Public Function AnzahlDatensätze(RecSet As String, Optional DatenBank As String = "") As Long Dim DB As DAO.Database If DatenBank = "" Then Set DB = CurrentDb ElseIf Dir$(DatenBank, vbHidden + vbSystem + vbReadOnly) = "" Then AnzahlDatensätze = 0 Exit Function Else Set DB = OpenDatabase(DatenBank) End If AnzahlDatensätze = DB.OpenRecordset("SELECT COUNT(*) FROM [" & RecSet & "]").Fields(0).Value End Function |
Argumente der Funktion/Prozedur |
Variante 1:
Variante 2:
Variante 3:
|
Verwendete Variable |
|
Rückgabewert |
Anzahl der Datensätze. |
Anwendungsbeispiel(e)... |
Über die Systemdatenbank innerhalb einer Access-MDB können indirekt auch andere Dinge gezählt werden, z.B. die Anzahl der Beziehungen. Die folgende Anweisung übergibt die Anzahl der Beziehungen in einer Datenbank an die Variable 'Beziehungen'
|
Hinweis |
Ein einfaches RecordCount funktioniert nicht immer, vor allem, wenn das Recordset von Typ 'Snapshot' ist, muss erst einmal zum letzten Datensatz gesprungen werden. Die Varianten zählen auch Datensätze, die NULL enthalten. |
Anwendungsgebiete, Fehler und Warnungen |
Verwendet die DAO Objektbibliothek. Ab Access 2000 muss diese explizit im VBA-Editor über 'Extras' -> 'Verweise' als 'Microsoft DAO 3.6' (oder höher) eingebunden werden und vor die 'Microsoft ADO 2.1' (oder höher) Bibliothek gesetzt werden. |