Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Zinsfunktion Access





Frage

Problem: Eine Anzahl von Zins-Tagen soll aus 2 Datumsfeldern einer Abfrage berechnet werden, wobei das Ergebnis nicht auf der Grundlage eines Jahres = 365 Tage, sondern 1 Jahr ist 360 Tage (Monat 30 Tage)ermittelt werden soll. Wie muß das Berechnungsfeld in der Abfrage lauten?

Antwort 1 von struppi

hallo
Wen Du Excel auf dem Rechner hast kannst Du das so machen:

In ein beliebiges Modul kopieren:

Public Function Tag360(Beginn As Date, Ende As Date) As Double
Dim Ex As Object
Set Ex = CreateObject("Excel.Application")
Tag360 = Ex.WorksheetFunction.Days360(Beginn, Ende)
set Ex = Nothing
End Function
----------------------------------------
In Deine Abfrage als neuen Ausdruck folgendes schreiben:

Zinstage: tag360([FeldBeginn];[FeldEnde])

---------------------------------------
Feldbeginn/Ende sind die Spalten mit dem Anfangs und Enddatum.

gruß struppi

Antwort 2 von Koebi

Grüezi

@Struppi
Schön wärs, aber bei mir funktioniert das leider nicht.
Gebe ich den Ausdruck in der Abfrage ein, folgt die meldung "undefinierte Funktion "tag360".
Als Formel im Steuerelementinhalt eines leeren Feldes produziert sie die Meldung #Name?

Was mache ich wohl falsch? Ich habe Access 97.
Uebrigens muss man im Modul auch noch den Verweis auf EXCEL 8.0 Object Library ankreuzen. Das habe ich auch gemacht. Trotzdem..... sie oben!

Gruss
Köbi

Antwort 3 von struppi

Hi Köbi
Den Verweis auf die Excel brauchst Du nicht machen, weil ich extra deswegen den Object-Typ nicht als Excel.Application vordefiniert habe.
Bei mir läuft die Sache unter A97.
Vielleicht... sollte man auf das Datumsformat achten. Und die Function in ein Modul mit Public zugängig machen.
Ich hab Dir mal ein Beispiel zugesendet.
gruß struppi


Antwort 4 von Fritz Jilek

Dies Lösung hat bei mir sofort funktioniert! Vielen Dank!

Antwort 5 von struppi

So gehts noch etwas schneller:

Public Ex As New Excel.Application
Public Function Tag360(Beginn As Date, Ende As Date) As Double
Tag360 = Ex.WorksheetFunction.Days360(Beginn, Ende)
End Function
-------------------------------------
Exel 8.0 Verweis anhaken! (siehe Köbi)