Staffelberechnungen (Access 97)
Veröffentlicht am 30.12.2003
Frage:
Ich habe eine Datenbank mit einer Tabelle für offene Posten. Ich möchte nun über das Tabellenfeld RE-Betrag die Mahngebühren berechnen lassen. Die Berechnung soll wie folgt aussehen:
RE-Betrag | Mahngebühr |
bis 1000 DM | 5,00 DM |
zwischen 1001 und 20.000 DM | 0,5% des RE-Betrags |
mehr als 20.000 DM | 100 DM |
Wie kann ich solch eine Berechnung in eine Access-Abfrage einbinden?
Antwort:
Access-97-Datenbank mit Demo-Datenbank
Bei einer solchen Staffel-Berechnung ist in den meisten Fällen eine kleine VBA-Prozedur notwendig.
In der Beispieldatenbank finden Sie eine Funktion namens GetMahngebühr (im Modul modMahngebühren), die anhand eines Rechnungsbetrags die entsprechende Mahngebühr berechnet. Die Prozedur sieht wie folgt aus:
Public Function GetMahngebühr(REBetrag As _ Variant) As Variant
' berechnet Mahngebühren
If IsNull(REBetrag) Then
GetMahngebühr = Null
ElseIf REBetrag <= 1000 Then
GetMahngebühr = 5
ElseIf REBetrag <= 20000 Then
GetMahngebühr = 0.005 * REBetrag
Else
GetMahngebühr = 100
End If
End Function
Diese Funktion können Sie beispielsweise in einer Abfrage einsetzen, um die Mahngebühren zu allen vorhandenen Rechnungen zu ermitteln:
SELECT RechnungNr, [RE-Betrag], GetMahngebühr([RE-Betrag]) AS Mahngebühr FROM Rechnungen;