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
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.
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 :)
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.
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!
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
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
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...
...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?
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
'
'
Mh...okay. Soweit hab ich das jetzt verstanden...nur, wie komme ich jetzt an die Monate zwischen "Do Until rstMonate.EOF" und "Loop"?
HA! Habs rausgefunden :)
rstMonate.Fields(0)...muss man auch erstmal drauf kommen!
Und schon funktioniert alles einwandfrei! Tausend Dank mal wieder :)
Hallo,
ZitatrstMonate.Fields(0)...muss man auch erstmal drauf kommen!
ist doch ganz "normales" Recordset-Getöns...