Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Erstellen eines Ausgaben-/Einnahmenplans

Begonnen von MarkusR, Dezember 17, 2013, 15:13:30

⏪ vorheriges - nächstes ⏩

MarkusR

Hallo zusammen,

ich bräuchte mal einen schlauen Ansatz von Euch: Mein Vorhaben ist, dass ich in einem Formular Ausgaben und Einnahmen chronologisch darstellen möchte. Die Daten hierzu kommen aus verschiedenen Tabellen (Rechnungstabelle, Materialeinkaufstabelle, Laufende Ausgabentabelle usw.). Ich möchte dann, das Monat für Monat angezeigt wird, wann wie viel Geld ein- bzw. ausgeht (gerne als Endlosformular).
Mit spezifischen Rechnungen die wir ausstellen oder die uns ausgestellt werden, ist das kein Problem. Ich weiß nur nicht ganz, wie ich das mit den laufenden Kosten mache (wie Miete, Personal usw.). Diese laufenden Ausgaben habe ich in einer Tabelle gespeichert (mit Bezeichnung, Betrag, Kombifeld mit Mehrfachauswahl für die Monate und Feld für den Abbuchungstag (an welchem Tag im Monat das abgebucht wird)).
Wie schaffe ich es jetzt, dass mir diese Kosten in dem Formular, wo ich alles zusammenführe, Monat für Monat angezeigt werden?

Da hat doch bestimmt jemand eine tolle Idee  ;)

Vielen Dank im Voraus und beste Grüße
Markus

DF6GL

Hallo,


sinnvoll wäre hier eine "Verlaufstabelle", soll heißen, eine Tabelle, in der alle Buchungen aktuell erfasst werden ("tblBuchungen").  Bei Rechnungen ein Datensatz zu dem Zeitpunkt, an dem die Rechnung tatsächlich bezahlt wird, bei den Daueraufträgen könnte eine automatische Buchung (Prüfen, ob ein "Zahltag" erreicht ist und entspr. Buchungs-Datensatz einfügen) erfolgen, wenn die DB (oder ein passendes Formular) geöffnet wird.

Die Auswertung/Anzeige erfolgt dann nur über eine passende Abfrage auf die Buchungstabelle, die entweder mit einem Formular oder einem Bericht visualisiert wird.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MarkusR

Guten Morgen!

Zuerst mal vielen Dank für deine Antwort.

Das mit der Buchungstabelle kam mir auch schon in den Sinn. Dort Datensätze per Abfrage anzufügen, wenn ich eine Rechnung schreibe ist auch kein Problem. Das mit den Daueraufträgen ist da ja wesentlich komplizierter. Wenn ich Dich richtig verstehe, soll doch das Formular, mit dem ich die Buchungen anzeigen lassen (nennen wir es frmBuchungen) prüfen, ob in tblLaufendeAusgaben, für einen bestimmten Zeitraum den ich mir gerade mit frmBuchungen anzeigen lasse (Monat xy), Datensätze existieren, die im Zeitraum Monat xy in der tblBuchungen angefügt werden müssen. Oder?

Nochmal vielen Dank  :)

DF6GL

Hallo,

Zitat
soll doch das Formular, mit dem ich die Buchungen anzeigen lassen (nennen wir es frmBuchungen) prüfen, ob in tblLaufendeAusgaben, für einen bestimmten Zeitraum den ich mir gerade mit frmBuchungen anzeigen lasse (Monat xy), Datensätze existieren, die im Zeitraum Monat xy in der tblBuchungen angefügt werden müssen.

Egal, wer prüft,  es muss ein entspr. Datensatz für einen "Dauerauftrag" (wie macht es denn Deine Bank ;-) ) jeweils zum bestimmten Datum in die "Kontoführung" eingefügt werden.   D. H. eine Prozedur prüft (bei welchem "Ereignis" auch immer es für Dich passt: Beim Start der DB, Beim Aufruf eines bestimmten Forms, oder sogar per separater MiniDB-Anwendung, die per Windows-Taskplaner täglich gestartet wird) , ob es für das akt. Datum  eine Buchungsvorgabe gibt (Angaben aus dem Dauerauftrag) und erledigt das dann.

Die Prozedur muss halt diesen Vorgang (Prüfen, ob eine  Buchung für den aktuellen Monat der jeweiligen Daueraufträge Auftrages erfolgt ist. Wenn nicht, wird eben diese Buchung durchgeführt.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MarkusR

Stimmt, es ist egal wer prüft. Nur muss ich halt auch im Voraus prüfen, da das ganze eine...ich nenne es mal "Liquiditätsplanung"...werden soll. Aber ob in dem Moment, in dem geprüft wird, nur ein Tag oder mehrere Monate geprüft werden, ist ja eigentlich auch Schnuppe.
Ich denke mal, ich mache ein kleines Popup Formular, bei dem man den Zeitraum auswählt, den man betrachten möchte und im folgenden wird dann das frmBuchungen geöffnet und dabei geprüft, ob für den Zeitraum alle Daueraufträge drin sind. So hab ich schon mal einen Ansatz...mal schauen, ob ich das mit dem Prüfen auch hinbekomme  ;D

Vielen Dank!

MarkusR

Guten Morgen!

Die Betriebsferien sind rum und ich brauche mal wieder Eure Hilfe! Ich bin jetzt bei dem Punkt angekommen, bei dem ich Prüfe, ob eine Buchung existiert und wenn nicht, diese hinzugefügt wird.
Ich hab das ganze so gestaltet, dass ich ein kleines Popup Formular habe, bei dem ich den Zeitraum auswählen kann, für den ich alle Buchungen betrachten möchte. Per Button (der das frmBuchungen öffnet) wird dann geprüft, ob es in dem Zeitraum laufende Ausgaben gibt, für die noch keine Buchungen existieren. Leider hakt es hier ein bisschen:

Zuerst lade ich die tblLaufendeAusgaben in ein Recordset und möchte dann jeden Datensatz prüfen
Set rcsLaufendeAusgaben = CurrentDb.OpenRecordset("SELECT * FROM tblLaufendeAusgaben", dbOpenDynaset)
    rcsLaufendeAusgaben.MoveFirst
   
    Do Until rcsLaufendeAusgaben.EOF


Nun besteht die tblLaufendeAusgaben unter anderem aus den Feldern "laustagID_F" und "lausmonID_F". Das Feld "laustagID_F" gibt den Abbuchungstag im Monat an. Das Feld "lausmonID_F" ist ein Feld mit Mehrfachauswahl für die Monate. Somit müsste ich also für jeden ausgewählten Monat eines Datensatzes in tblLaufendeAusgaben prüfen, ob der innerhalb des gewünschten Zeitraums liegt. Mein erster Gedanke hierfür war

For Each varItem In rcsLaufendeAusgaben.Fields("lausmonID_F")

Leider funktioniert das nicht. Ich bekomme dann den Laufzeitfehler 3251: Operation wird für diesen Objekttyp nicht unterstützt. Gibt es hier eine andere Methode oder ist der Ansatz mit der Mehrfachauswahl für die Monate falsch?

Vielen Dank im Voraus!

Beste Grüße
Markus

DF6GL

Hallo,

Ein Mehrwertfeld ist eine verschlimmbesserte Access-Objekt, das nur Probleme mit sich bringt....

Auf die dahinterliegende Tabelle eines Mehrwertfeldes kann mit dem Öffnen eines Recordsets vom Datentyp Recordset2 auf die Value-Eigenschaft des Mehrwertfeldes zugegriffen werden
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MarkusR

Hallo,

was wäre denn die Alternative zu einem Mehrwertfeld?

Wenn ich rcsLaufendeAusgaben als Recordset2 deklariere und versuche auf die Daten über

For Each varItem In rcsLaufendeAusgaben.Fields("lausmonID_F").Value

zuzugreifen, erhalte ich immer noch den selben Fehler...

MarkusR

...ach, ich blöd!

m:n-Beziehung ist natürlich die Alternative zum Mehrwertfeld. Die Betriebsferien haben ihre Spuren hinterlassen...  :D

Gibt es denn eine Alternative zum Unterendlosformular, wenn ich das mit einer Zwischentabelle statt einem Mehrwertfeld löse?


DF6GL

Hallo,


Dim rcsLaufendeAusgaben as Dao.Recordset
Dim rstMonate as Dao.Recordset2

Set rcsLaufendeAusgaben = CurrentDb.OpenRecordset("SELECT * FROM tblLaufendeAusgaben", dbOpenDynaset)
Do until rcsLaufendeAusgaben.EOF
'
'
SET rstMonate = rcsLaufendeAusgaben!lausmonID_F.Value   

   Do until   rstMonate.EOF

   ' mach was mit den Monaten

   rstMonate.Movenext
   Loop
'
'
rcsLaufendeAusgaben.Movenext
Loop
'
'

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

MarkusR

Mh...okay. Soweit hab ich das jetzt verstanden...nur, wie komme ich jetzt an die Monate zwischen "Do Until rstMonate.EOF" und "Loop"?

MarkusR

HA! Habs rausgefunden  :)

rstMonate.Fields(0)...muss man auch erstmal drauf kommen!

MarkusR

Und schon funktioniert alles einwandfrei! Tausend Dank mal wieder  :)

DF6GL

Hallo,

ZitatrstMonate.Fields(0)...muss man auch erstmal drauf kommen!
ist doch ganz "normales" Recordset-Getöns...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access