Navigation

Domänenfunktionen




VBA Access (deutsch) Funktion
DMin() DomMin() Findet den kleinsten Wert innerhalb
einer Gruppe.
DMax() DomMax() Findet den größten
Wert innerhalb einer Gruppe.
DCount() DomAnzahl() Gibt die Anzahl gefundener Datensätze
wieder
DSum() DomSumme() Summiert Werte innerhalb einer
Gruppe.
DLookUp() DomWert() Gibt einen Wert wieder.
DFirst() DomErsterWert() Gibt den ersten Wert innerhalb
einer Gruppe wieder.
DLast() DomLetzerWert() Gibt den letzten Wert innerhalb
einer Gruppe wieder.
DAvg() DomMittelwert() Gibt den Mittelwert einer Gruppe
wieder.
DStDev() DomStdAbw() Gibt eine Standardabweichung innerhalb
einer Gruppe wieder
DVar() DomVarianz() Schätzt die Varianz einer
Gruppe (mindestens 2 Werte erforderlich!)





Alle verwenden die selbe Syntax:



für VBA:

DMin("Feld", "Tabelle", "Kriterium =
Wert")





für Access: =DMin("Feld";"Tabelle";"Kriterium
= Wert")



Schlüßeln wir es einmal weiter auf:



Feld:

Damit wird ein bestimmtes Feld innerhalb einer Tabelle/Abfrage angesprochen.

Bei DCount kann man hier auch ein "*" verwenden, wenn das Feld
eigentlich egal ist.



Tabelle:

Damit ist die Datenquelle gemeint. Diese kann eine Tabelle oder eine Abfrage
sein.



Kriterium:

Mit dem Kriterium kann man seine Auswahl einschränken. Hier kann man 1 oder
mehrere Kriterien verwenden.

Man muss allerdings bei den unterschiedlichen Datentypen unterscheiden:



Für VBA:


 "Zahl = " & Me!Zahl
"Text = '" & Me!Text & "'"
"Datum = " & Format(Me!Datum, "\#yyyy\-mm\-dd\#")





Für Access:


 "Zahl = " & [Zahl]
"Text = '" & [Text] & "'"
"Datum = " & CDate([Datum])





Bei Texten kann man auch Wildcards verwenden. Hierzu muss man allerdings Like
verwenden und nicht "=":

"Text Like '" & Me!Text & "*'"



Man kann natürlich auch mehrere Kriterien in einem Aufruf verwenden:


 Me!Feld = DLookUp("Feld", "Tabelle", "ID = " &
Me!ID & " AND Text = '" & Me!Text & "'")




Allen Domänenfunktionen ist gemein, dass sie bei größeren Datenmenge
relativ langsam werden.

Also wollen wir hier auch gleich noch ein Beispiel zeigen, wie man sich eine Ersatzfunktion erstellt.

Dazu erstellen wir uns in einem globalen Modul eine neue Funktion:


 Public Function fLookUp(Feld As String, Tabelle As String, Optional Kriterium As String) As Variant
Dim strSQL As String

strSQL = "SELECT " & Feld & " FROM " & Tabelle
If Not IsMissing(Kriterium) Then
strSQL = strSQL & " WHERE " & Kriterium
End If
fLookUp = DBEngine(0)(0).OpenRecordset(strSQL, dbOpenSnapshot)(0)
End Function

Diese Funktion besitzt keine Fehlerbehandlung! Wenn der Recordset leer ist (rs.EOF oder rs.BOF = True), gibt es eine Fehlermeldung.