Hallo Access-Gemeinde!
In einer kleinen Datenbank verwalte ich meine Einnahmen und Ausgaben.
Ich habe mir nun zur Aufgabe gestellt, in einem Formular die monatlichen Ausgaben und Einnahmen gelistet anzeigen zu lassen. Datenbasis sind zwei Tabellen "Einnahmen" und "Ausgaben". Zur Zeit erreiche ich das Ergebnis, indem ich eine Hilfstabelle pflege, die aber Monat für Monat "zu Fuß" fortgeschrieben werden muss .... und das ist sicher nicht die Musterlösung.
Meine Frage lautet also: Wie gestalte (programmiere) ich ein List-Formular, das aus der Datenbasis monatliche Summen berechnet und diese gelistet anzeigt?
Vielen Dank für jedweden hilfreichen input!!
Gruß, Ferdi
Hallo,
ZitatDatenbasis sind zwei Tabellen "Einnahmen" und "Ausgaben".
das ist schon der 1.Fehler. Einnahmen und Ausgaben sind in einer Tabelle zu führen. Ausgaben sind negativ und Einnahmen positiv. Der Saldo ist die Summe. Du kannst eine Betragsarttabelle anlegen die das Vorzeichen für den Betrag je nach Auswahl automatisch bestimmt.
Mit einer Tabelle musst Du nur nach Monat gruppieren und schon hast Du die gewünschte Auswertung.
Wahrscheinlich speicherst Du ja auch für die Beträge bestimmte Kategorien (Gehalt, Miete etc.). Auch über diese Kategorien kann ein automatisches Vorzeichen realisiert werden.
Mir scheint, für die DB bestehen noch erhebliche Verbesserungsmöglichkeiten.
Hallo Klaus!
Vielen Dank für deine Antwort .... ich hatte gehofft, eine Lösung zu finden, ohne dass ich meine DB vollständig neu gestalten muss...... :-(
Hallo,
gestalte die DB um, alles andere halte ich für Krampf und für eine Datenbank unbrauchbar. Ein und Ausgaben sind Buchungsdatensätze und in einer Tabelle zu speichern. Die Art des Betrages (Ein oder Ausgabe) bestimmt dessen Vorzeichen (automatisch). Damit kannst Du mit einer Tabelle für die Buchungen jede gewünschte Darstellung zu erreichen.
- nur Ausgaben (wie bisher die Ausgabentabelle)
- nur Einnahmen (wie bisher die Einnahmentabelle)
- Ein und Ausgaben in je einer Spalte
- monatsweise Darstellung mit jeweiligem Salos
- das Gleiche für ein Jahr
- aktueller Saldo
usw. usw. alles mit einer Tabelle.
Wenn Du etwas mehr zum jetzigen Aufbau erklärst, mache ich Dir ein Beispiel.
Hast Du solche Kategorien angelegt um die Ein bzw. Ausgaben einzuteilen ?
Welche Tabellen hast Du außer Ein und Ausgaben ?
Hallo Klaus,
anbei meine Tabellen und deren Beziehungen....
Gruß und danke,
Ferdi
Hallo,
ZitatWenn Du etwas mehr zum jetzigen Aufbau erklärst,
ein Bild ist keine Erklärung, ohne Erläuterung ist damit nicht viel anzufangen, ich bin kein Buchhaltungsexperte.
Erkläre mal folgende Felder genauer:
- Einnahme
- Einnahmeart
- Sachkonto
- Ausgabenklasse
- Grundpreis
- Vorgemerkt
- Obergrenze
- Fixposten
Hallo Klaus, zu den einzelnen Feldern folgendes:
- Unter Einnahme bezeichne ich die Einnahme, wie z.B. "Gehalt Mai" oder "Lotto Kleingewinn"
- Unter der Einnahmeart gruppiere ich diese: Gehalt, Zinsen, Gewinne
- Unter Sachkonto Gruppiere ich die Ausgaben: Lebensmittel, Miete, Kfz ... usw
- Unter der Ausgabenklasse gruppiere ich nach: Notwendig, nicht notwendig, Luxus...
- Den Grundpreis verwende ich z.B. um den Benzinpreis je Liter beim Tanken zu vermerken
- Unter Obergrenze setze ich monatliche Limits pro Sachkonto, damit gestalte ich im Auswerte-Formular farblich - zb rote Schrift, wenn Grenze überschritten
- Vorgemerkt und Fixposten sind Booleans, mit denen ich kennzeichne, ob eine Zahlung wiederholend ist und ob eine Ausgabe schon getätigt, aber noch nicht auf dem Konto verbucht ist.
Ich hoffe, das hilft weiter!
Gruß, Ferdi
Hallo,
die Spalte "Eínnahme" halte ich für überflüssig. Dass das Gehalt vom Mai ist ergibt sich aus dem Buchungsdatum. Einnahmeart und Sachkonto gehört in eine Tabelle mit einem Kennzeichen für die Art (-1 = Ausgabe, 1 = Einnahme). Die Tabelle kannst Du z.B. Kategorien nennen. Dieses Kennzeichen ist gleichzeitig für das automatische Vorzeichen des Buchungsbetrags zuständig. Die Ausgabenklasse und Obergrenze kommt ebenfalls in diese Tabelle (Felder bleiben leer wenn nicht erforderlich).
Den Grundpreis würde ich nicht speichern, sondern die getankte Menge. Daraus lässt sich der Grundpreis errechnen. Das gilt auch für andere Artikel zu denen es einen Grundpreis gibt. Z.B. Heizöl, Gas etc.
Fixposten und Vorgemerkt ist OK, Vorgemerkt darf aber dann nicht in die Saldenberechnung eingehen.
Die DB bedarf einer gründlichen Umstrukturierung.
Tja, ....
dass meine DB vom Ansatz her allenfalls Schrottwert hat, habe ich nach dem dritten Hinweis nun begriffen.
Da werde ich wohl neu aufsetzen und mich den damit verbundenen neuen Herausforderungen stellen, wie z.B. der "automatischen Unterscheidung nach Einnahme oder Ausgabe" schon bei der Eingabe eines Buchungs-Datensatzes.
Ob - und wenn ja, wie - ich auf Grund dieser neuen Datenstruktur dann mein eingangs beschriebenes Problem lösen kann, wird die Zukunft zeigen.
Hallo,
Zitat"automatischen Unterscheidung nach Einnahme oder Ausgabe" schon bei der Eingabe eines Buchungs-Datensatzes.
das geht von alleine, nach Auswahl einer Kategorie für die Buchung.
Zitatwie - ich auf Grund dieser neuen Datenstruktur dann mein eingangs beschriebenes Problem lösen kann,
das Problem gibt es dann nicht mehr, weil es nur eine Tabelle gibt, die man nach beliebigen Zeiträumen gruppieren kann.
Ich hatte Dir ja ein Beispiel versprochen, mache ich Dir, aber erst heute Abend.
Interessiert ?
Hallo Klaus und vielen Dank für das Angebot!
Sicher interessiert es mich, zu sehen, wie ein Profi eine solche DB aufsetzt!
Gruß,
Ferdi
Hallo,
so, anbei mal eine Umsetzung.
Das Formular dient der Anzeige und Erfassung neuer Buchungen und kann für Konten oder Monatsweise gefiltert werden.
Es gibt auch einen Bericht der die Einnahmen und Ausgaben in 2 Spalten darstellt. Mit jeweiliger Summenbildung und Saldo.
DB anbei. Ich habe nur Access 2003, bleibe bei dieser Version, ACCDB's kann ich nicht ansehen.
Hallo KLaus!
.... und vielen Dank. Auf den ersten Blick bin ich mal baff erstaunt!
Das ist für einen Neuling ja schon fast erschreckend, wie einfach die Lösung für das gestellte Problem aussehen kann!
Ich werde mich mal dransetzen und sehen, dass ich da auch einen Mehrwert in Sachen DB-Gestaltung abschöpfen kann - will sagen: was daraus lernen.
Gruß,
Ferdi
Update / Edit:
Ich glaube ja nun doch, dass Access mich an den Rand der Verzweifelung bringt!
Habe mir die DB in allen Details angesehen - den VBA-Code eingeschlossen - und aufgrund dessen zwei weitere Filter in das Formular eingebaut: Filter nach Kategorie und Filter nach Gruppe (beide Tabellen habe ich zwischenzeitlich an meine persönlichen Bedürfnisse angepasst).
Obwohl ich nun beide Filter identisch angelegt habe, funktioniert der nach Gruppe wie erwartet, der nach Kategorie aber gar nicht. .... und da steh ich nun, ich armer Thor und bin so schlau als wie zuvor.... :( :(
oder, wie Wilhelm Busch so trefflich formuliert hat: "Wenn einer, der mit Mühe kaum, gekrochen ist auf einen Baum, schon meint, dass er ein Vogel wär .... so irrt sich der."
(Die DB mit meinen Änderungen hängt an.)
Gruß,
Ferdi
Hallo,
ich behaupte mal, dass Du die Ereignisprozedur "Nach Aktualisierung" nicht richtig angelegt hast...
In der Eigenschaft(enzeile) "Nach Aktualisierung" des Kombis muss
[Ereignisprozedur]
stehen.. und zwar genau so..
Hallo Franz und vielen Dank ... Volltreffer!
Genau da hatte ich nicht hingesehen, vielleicht auch deshalb, weil der entsprechende Eintrag bei der 2. kopierten ComboBox übernommen war.
Gruß,
Ferdi