MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 10.05.2004, 09:22   #1
Leukos
Neuer Benutzer
Neuer Benutzer
Standard Zinsberechnung Sparverein

Hi Leute, ich habe folgendes Problem!

Ich muss für eine Prüfung voraussichtlich einen Sparverein mit einer Access Datenbank verwalten.

Ich hab die DB bisher so aufgebaut:
Tabelle Mitglieder:
ID, Geburtsdatum, Vorname, Nachname, Strasse, PLZ, Ort

Tabelle Einzahlungen
ID, MitgliederID (Mit verweis auf die ID der Mitglieder), Betrag, Art (Strafe, Zinsen, Einzahlung)

Nun soll ich mit einer Funktion die Zinsen sowie die Strafen berechnen lassen. Das währen zB 4 % Zinsen pro Jahr und € 2 pro Monat Strafe falls der Einzahlungsbetrag unter € 10 liegt.

Für mich stellt sich nun die Frage wie ich das ganze angehen soll. Ich finde einfach keinen punkt wo ich ansetzen könnte.

Danke für eure Hilfe

mfg

Leukos
Leukos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 09:39   #2
J_Eilers
MOF Guru
MOF Guru
Standard

Hi,

erstmal solltest du die Art in eine separate Tabelle packen und nur die Schlüßek übergeben.
Dann könnte man sich Monatsweise die Summe der Einzahlungen anschauen und falls diese unter 10€ liegen, 2€ Strafe erheben.
Und dann kann man sich mit Zins und Zinseszins beschäftigen. Aber wer kontrolliert, ob die Strafe bezahlt wurde?

__________________

Bis denn dann
Jan


FAQ | relationale Datenbanken | Grundlagen | DBWIKI | Josef's Access Seite | Meine Homepage und Access | Abhängigkeiten | Suchen und Nachschlagen | Tab2Web |
SQL-Codes bitte formatieren und als Code posten. Danke!

Bitte keine Fragen als PN! Probleme gehören ins Forum und mit Feedback kann man sie auch lösen.
J_Eilers ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 09:41   #3
stpimi
MOF Meister
MOF Meister
Standard

Für die Zinsen wirst Du Dir wohl eine Funktion in einem Modul erstellen müssen. Wie genau sind die Zinsen zu berechen? Nur mit der einfachen Zinsformel oder mit Zinseszinsen?

Die Strafen sind grundsätzlich recht einfach:
Mit DCount und einer entsprechenden Bedingung bekommst Du die Monate, in denen der eingezahlte Betrag zu gering ist.

Fraglich ist: Gibt es genau eine Einzahlung pro Monat oder mehrere, die zuerst summiert werden müssen? Straf- und Zinszahlungen sind auch keine "echten" Einzahlungen und müssen zuerst herausgefiltert werden ...
Dann wirst Du wohl auch hier mit einer VBA-Funktion besser bedient sein.

Mfg, Michael

__________________

Mfg, Michael

Alte Programmiererweisheit: Kaum macht man's richtig, funktioniert es schon ....

PS: Dein Feedback hilft allen weiter - vergiss es nicht ...!!

(Systemumgebung: Windows XP, Office XP/2003)

relationale Datenbanken | FAQ | Reinhard Kraasch | Access-Grundlagen | Uploads | DB-Wiki |Die 10 Access-Gebote | Makros - besser nicht!
stpimi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 09:47   #4
Leukos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Modul usw. ist schon klar.

Also es kann x einzahlungen pro Monat geben. Es braucht nur die einfache Zinsrechung durchgeführt werden.

Und dann stellt sich noch die Frage wo ich festhalte wann die letze Berechnung stattgefunden hat?

mfg

Leukos
Leukos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.05.2004, 09:56   #5
stpimi
MOF Meister
MOF Meister
Standard

Dafür würde sich wohl eine Steuertabelle anbieten. Ich gehe davon aus, das die letzte Berechnung für alle Mitglieder zum gleichen Zeitpunkt erfolgt und die Zinsen dann gutgeschrieben werden.

Der Funktion Zinsberechnung übergibst Du als Parameter die MitgliedsID.
Du stellst fest, ab wann die Verzinsung zu erfolgen hat (unterjähriges Einstiegsdatum...)
Dann liest Du die zu verzinsenden Beträge, verzinst jeden einzeln (wegen unterschiedlicher Anzahl von Zinstagen und summierst die Beträge.
Das Ergebnis schreibst Du in den Rückgabeparameter der Funktion,

Ich kann Dir jetzt mangels Access keinen konkreten Code liefern, aber ich hoffe, Du kommst auch damit weiter.

Im Formular kannst Du dann die Funktion im Steuerelementinhalt eines Anzeigefeldes verwenden.

Mfg, Michael

__________________

Mfg, Michael

Alte Programmiererweisheit: Kaum macht man's richtig, funktioniert es schon ....

PS: Dein Feedback hilft allen weiter - vergiss es nicht ...!!

(Systemumgebung: Windows XP, Office XP/2003)

relationale Datenbanken | FAQ | Reinhard Kraasch | Access-Grundlagen | Uploads | DB-Wiki |Die 10 Access-Gebote | Makros - besser nicht!
stpimi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.05.2004, 08:55   #6
Leukos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Also hier mal mein konkreter code zur zinsverrechnung. Nur wie gehe ich jetzt mit den strafzahlungen um die jedes monat abgebucht werden sollten.

Code:

Public Function zinsenVerbuchen(ByVal MitgliederID As Long) As Double
    Dim SummeDerEinzahlungen As Double
    Dim SummeDerZinsen As Double
    Dim DifferenzDerTage As Integer
    Dim ZinsenProzent As Double
    Dim Zinskapital As Double
    
    SummeDerZinsen = 0
    
    ' Zuerst mal alle Einzahlungen des Mitgliedes
    ' aus der Datenbank holen lassen außer natürlich
    ' den Zinsen und der Strafzahlungen
    Dim rsEinstellungen As dao.recordset
    Set rsEinstellungen = CurrentDb.OpenRecordset("Einstellungen")
    ZinsenProzent = rsEinstellungen.Fields!Verzinsung
    
    Dim rsEinzahlungen As dao.recordset
    Set rsEinzahlungen = CurrentDb.OpenRecordset("SELECT * FROM Einzahlungen WHERE Einzahlungen.Art = 'Einzahlung' AND Einzahlungen.Mitglied = " & MitgliederID)
    
    Do While Not (rsEinzahlungen.EOF)
        DifferenzDerTage = DateTime.Date - rsEinzahlungen.Fields!Einzahlungsdatum
        Zinskapital = (rsEinzahlungen.Fields!Betrag * ZinsenProzent * DifferenzDerTage) / (36000)
        SummeDerZinsen = SummeDerZinsen + Zinskapital
        rsEinzahlungen.MoveNext
    Loop
    
    zinsenVerbuchen = SummeDerZinsen
End Function
bitte vergebt mir wenn der code nicht all zu sauber ist. das ist die erste woche in der ich mit access arbeite und in 10 tagen muss ich einen test damit durchstehen.

mfg

leukos
Leukos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.05.2004, 09:14   #7
stpimi
MOF Meister
MOF Meister
Standard

Für die Ermittlung der Strafzahlungen brauchst ebenso ein Recordset über die Einzahlungen. Du summierst die Beträge monatsweise und wenn der Betrag < 10 ist, schreibst Du in Deiner Umsatztabelle einen entsprechenden Datensatz. Das geht mit einem SQL-INSERT:

INSERT INTO Umsatztabelle FIELDS (.....) VALUES (.....)

Das ganze mit einem DBEngine(0)(0).Execute abgesetzt.

Du musst dann nur noch sicherstellen, daß Monate, für die die Strafzahlung bereits verrechnet wurde, irgendwie festgehalten werden, damit es zu keiner Doppelverrechnung kommt.

Tipps zum Code Zinsberechnung:
Alle Variablendeklarationen ganz am Anfang machen, immer ein typspezifisches Präfix vervenden. Siehe hier!

__________________

Mfg, Michael

Alte Programmiererweisheit: Kaum macht man's richtig, funktioniert es schon ....

PS: Dein Feedback hilft allen weiter - vergiss es nicht ...!!

(Systemumgebung: Windows XP, Office XP/2003)

relationale Datenbanken | FAQ | Reinhard Kraasch | Access-Grundlagen | Uploads | DB-Wiki |Die 10 Access-Gebote | Makros - besser nicht!
stpimi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.