Neuigkeiten:

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

Mobiles Hauptmenü

Vorgehen und Strukturierung beim Erstellen einer Datenbank in Access

Begonnen von Benedikt, August 18, 2010, 16:13:29

⏪ vorheriges - nächstes ⏩

Benedikt

Hallo zusammen!

Ich stehe z.Zt. vor der Aufgabe, eine Datenbank zu erstellen, mit welcher die Finanzen eines Großprojektes verwaltet werden sollen. Ich bin schon seit einigen Tagen damit beschäftigt, jedoch scheitere ich regelmäßig an unterschiedlichen Fehlermeldungen und weiß leider nicht mit diesen umzugehen, da ich mit Access vorher noch nichts zu tun hatte.
Daher bitte ich euch, mir ein paar grundlegende Tipps zur Struktur meiner Datenbank zu geben. Die Aufgabenstellung werde ich im Folgenden zu gut es geht erläutern  ;D

Der User soll die Möglichkeit erhalten, Bewilligungen für verschiedene Projekte an unterschiedlichen Instituten einer Uni in die Datenbank einzupflegen und bei Bedarf auch entsprechend auszulesen.

Die Projekte zeichnen sich durch einen Titel, Abkürzung, Principal-Investigator, beteiligtes Institut etc. aus.

Eine Bewilligung besteht dabei aus verschiedene Posten: Personalmittel, Sachmittel etc..., die jeweils für ein Jahr (von 2010 bis 2015) vergeben werden. Jedoch kann es auch sein, dass in einem Jahr Sachmittel zur Verfügung gestellt werden, die nicht alle der gleichen Sache zu Gute kommen - also müssen pro Jahr und Posten bis zu 10 Verwendungszwecke vorgesehen werden. Zudem fließen die Mittel auch nicht nur auf ein Konto des beteiligten Institutes, sondern min. auf zwei. Ebenso können die Mittel von zehn verschiedenen Konten zur Verfügung gestellt werden.

Bisher bin ich wie folgt vorgegangen:
Ich habe folgende Tabellen erstellt:

tblProjekte:
enthält die Projekt_ID, Institute, Titel, Abkürzung, Start- und Enddatum sowie die Summe der bewilligten Mittel für jeden Posten und Jahr

tblPosten_1_3:
enthält die Projekt_ID, 10x  Verwendungszweck und 10x Betrag für jeden Posten (1-3) und jedes Jahr

tblPosten_4_6:
enthält die Projekt_ID, 10x  Verwendungszweck und 10x Betrag für jeden Posten (4-6) und jedes Jahr

tblInstitute:
enthält die Insituts_ID, den PI

tblKonten:
enthält die Instituts_ID, die Projekt_ID, die entsprechenden Konten

So, und nun gehts los....

Meine Idee war, für die Eingabe eines neuen Projekts samt Bewilligungen ein Formular zu erstellen, aufgrund der benötigten Felder wurde dieses aber zu groß. Daher habe ich jetzt drei Formulare erstellt:
auf dem ersten gibt man Titel, Abkürzung etc. ein, die Projekt_ID ist dabei als Autowert definiert.
Nun würde ich über einen Button diesen Datensatz gerne in der Tabelle tblProjekte speichern und direkt zum nächsten Formular, frmPosten_1_3, springen. Das geht auch - jedoch weiß ich nicht, wie ich dem Formular hierbei die gerade erzeugte Projekt_ID übergeben kann - ich bekomme jedesmal den Fehler "MS Office kann diesem Objekt keinen Wert zuweisen". Manuelles schreiben in diesem Feld funktioniert aber tadellos, der Wert wird dann auch in der Tabelle übernommen. Über einen weiteren Button würde ich dann gerne zu frmPosten_4_6 springen.

Wenn ich diesen Datensatz speichere, soll zudem in der Tabelle tblProjekte das Feld PM_2007 mit der Summe der zehn Beträge gefüllt werden, die ich über frmPosten_1_3 in der Tabelle tblPosten_1_3 eingebe.
Ebenso sollten die entsprechenden Beträge (bzw. Summen einzelner Beträge) durch Angabe der Projekt_ID und der Insituts_ID in der Tabelle tblKonten gespeichert werden, damit später (über die Instituts_ID) der Kontostand ausgelesen werden kann.

Das füllen der Tabellen über die Formulare klappt einzeln zwar schon, aber ich bekomme die Verknüpfung über die Projekt_ID nicht gebacken.
Alternativ habe ich auch schon versucht, das Problem über Unterformulare zu lösen. Aber falls ich im Detailbereich von  frmProjekte mein Formular frmPosten_1_3 eingliedere, ist es nicht sichtbar, sondern nur, wenn ich es im Fussbereich eingliedere.

Mein Fragen und Bitten an euch sind nun also:

Ist die Grundstruktur mit den angelegten Tabellen sinnvoll?
Sollte ich lieber Unterformulare statt einzelner, verknüpfter Formulare verwenden?
        Wenn ja, wie geht das?
        Wenn nein, wie geht das?


Ich hoffe, ich habe mein Problem anschaulich erklärt, und dass ihr mir etwas unter die Arme greifen könnt!

Besten Dank,
Benedikt

MzKlMu

Hallo,
ZitatIst die Grundstruktur mit den angelegten Tabellen sinnvoll?
Nein, zumindest die Postentabellen halte ich für äußerst fragwürdig.
Das sollte über mehr tabellen gelöst werden.

tblVerwendungszweck
enthält die VerwZeck_ID, Verwendungszweck

tblPosten
enthält die Posten_ID, PostenNummer, Postenbezeichnung

tblPostenZuordnung:
enthält die PostenZuordnung_ID, Projekt_ID, VerwZeck_ID, Posten_ID, Betrag, Jahr

In der letzten Tabelle wird für jeden Betrag, Posten Jahr und Verwendungszweck ein Datensatz angelegt.

Vergiss mal die Formulare, die kommen erst wenn die Struktur stimmt.
Gruß Klaus

Benedikt

Hallo!

Vielen Dank für deine schnelle Antwort.

Wieso sollte ich das mit mehreren Tabellen lösen? Ich dachte, es wäre logisch, wenn Betrag und Verwendungszweck für einen Posten und Jahr zusammen in einer Tabelle stehen  ???

Und vielleicht habe ich mich etwas undeutlich ausgedrückt:
Es gibt zwar für jeden Posten und jedes Jahr zehn Felder für einen Verwendungszweck, damit der jährliche Betrag genauer aufgesplittet werden kann, aber insgesamt gibt es unendliche viele Verwendungszwecke. Sollte ich dann trotzdem eine eigene Tabelle für die Verwendungszwecke anlegen?

Danke!

MzKlMu

Hallo,
trotz der neuen Hinweise bleibt es bei meinem Vorschlag. Mit einer Einschränkung:
Wenn der Verwendungszweck immer Freitext ist, dann keine Tabelle, sondern immer als Text erfassen. Aber immer in einem neuen Datensatz. Und unter keinen Umständen 10x ein Feld für den gleichen Inhalt.

Die zuordnungstabelle seiht dann so aus:
tblPostenZuordnung:
enthält die PostenZuordnung_ID, Projekt_ID, VerwendungsZeck, Posten_ID, Betrag, Jahr

Die tabelle mit dem Verwendungszweck entfällt dann.

Gruß Klaus