Hallo liebes Forum,
ich habe Euch gefunden, mich angemeldet und hoffe dass Ihr mir in Bezug auf Access ein paar Denkanstöße geben könnt.
Die Aufgabe ist folgende: Ich habe eine Datenbank mit mehreren Tabellen: tblStammdaten mit Mitarbeiter-Stammdaten, tblSpesenarten mit Spesenarten, tblVst mit bestimmten Vorsteuersätzen. Diese Tabellen sind alle gefüllt und miteinander verknüpft, referenzielle Integrität eingestellt usw.
Es gibt eine weitere Tabelle tblAbrechnung welche leer ist. Diese soll mit Daten gefüllt werden.
Es soll nun ein Formular geben in welchem man zunächst aus den Stammdaten einen Mitarbeiter über ein Suchfeld auswählen kann um für diesen einen oder mehrere Datensätze in der tblAbrechnung zu erstellen. Dabei soll in dem Suchfeld der Name oder die Personalnummer aus der tblStammdaten eingegeben werden können um den MA zu finden.
Zweitens soll es im Formular 4 Checkboxen für verschiedene Reisekostenarten geben die aktiviert/deaktiviert werden können. In Abhängigkeit der ausgewählten Checkboxen sollen entsprechend viele Datensätze in der tblAbrechnung erstellt werden die mit den MA-Daten und der ausgewählten Reiseart vorbelegt sind. Diese Datensätze werden im Anschluss über ein zweites Formular weiter bearbeitet.
Mein Problem ist zunächst erst einmal: Wie bekomme ich die ausgewählten MA-Daten inklusive der Reisekostenarten in die tblAbrechnungen? Ich weiß irgendwie nicht wie ich mit einer Abfrage auf die Checkboxen zugreifen soll, die ja ungebunden sind. Ich bin mir auch nicht so sicher ob ich dafür ein gebundenes Formular (z.B. an tblStammdaten) oder ein ungebundenes Formular nutzen sollte.
Diverse Abfragen für die Bildung von Summen aus den eingetragenen Werten habe ich bereits erstellt. Diese beziehen sich aber auf die tblAbrechnung, die allerdings noch leer ist. Kann die Abfragen also auch erst prüfen wenn die Tabelle gefüllt wurde. Und da beißt sich der Hund in den Schwanz ;)
Die Suchfunktion klappt zwar auch noch nicht richtig, aber das ist erstmal ein zweitrangiges Problem.
Hat jemand hier evtl. einen Denkanstoß? Ich wäre sehr froh.
Danke schon mal.
Jörg
Hallo,
bitte zeige mal ein Bild des Beziehungsfensters. Aber so, dass man alle Felder der Tabellen sieht.
ZitatDiverse Abfragen für die Bildung von Summen aus den eingetragenen Werten habe ich bereits erstellt.
Du machst schon das Dach vor den Mauern, bildlich gesprochen.
Erst sollte mal das Datenmodell auf den Prüfstand, bevor man Formulare und Abfragen macht. Die 4 Checkboxen sind mir mal schon suspekt. Checkboxen zur Auswahl sind für eine Datenbank (meistens) ungeeignet. Was sind das für 4 Reiskostenarten ?
Du brauchst auch eine extra Tabelle für die Daten der Reise (Datum, Ziel, Grund, etc.). Diese Tabelle erhält dann den Fremdschlüssel (FS) zum Mitarbeiter. Die eigentliche Abrechnung nur einen FS zur Reise.
Ungebunden Felder sollte es keine geben.
Daher, zeige erst mal ein Bild er Beziehungen.
Hallo MzKlMu,
hier das Bild. Die Checkboxen sind für km-Geld, Auto, Hotel, Verpflegungsmehraufwand 12h und Verpflegungsmehraufwand 24h. Die Reise soll ja erst über das Formular eingetragen werden. In der tblAbrechnungen existiert ja bereits der Fremdschlüssel zu den Stammdaten (siehe Beziehungen).
Hallo,
und in welcher Tabelle erfasst Du die eigentlichen Reisedaten (ReiseDatum, Ziel, Grund, etc.). Wenn ich mich recht erinnere (ist schon lange her) muss das ja für jede Reise getrennt erfasst werden. Und ein Mitarbeiter macht ja mehrere Reisen die getrennt erfasst werden müssen.
ZitatDie Checkboxen sind für km-Geld, Auto, Hotel, Verpflegungsmehraufwand 12h und Verpflegungsmehraufwand 24h.
Hier ist eine Tabelle eforderlich mit je einem Datensatz für Reisekostenarten.
Die Spesentabelle ist mir auch unklar. Sachbezüge und Festwerte sind das die Spesenarten ? Im Grunde sind die Spesenarten doch auch nix anderes als Reisekostenarten. Verpflegungsmehraufwand 12h sind doch die Spesen, oder ?
Jedenfalls ist mir das so in Erinnerung.
Ich halte das Grundgerüst so wie das jetzt ist für wenig brauchbar.
Hier muss nachgebessert werden.
PS:
Auch wenn Du es woanders als Empfehlung gelesen hast, die Präfixe vor den Feldnamen sind so überflüssig wie ein Kropf und verlängern nur die Schreibarbeit. Dass der Nachname zu den Stammdaten gehört erkennt man auch ohne stamm. Sorge dafür, dass die Feldnamen in der ganzen Datenbank eindeutig sind und so kurz wie möglich.
speseID : speseID_F
Alles andere wirst Du noch bedauern. Ändere es gleich, es wird sonst immer aufwendiger.
Hallo,
Zitat
Wenn ich mich recht erinnere (ist schon lange her) muss das ja für jede Reise getrennt erfasst werden. Und ein Mitarbeiter macht ja mehrere Reisen die getrennt erfasst werden müssen.
Die werden in der Tabelle Abrechnungen erfasst. Deshalb die Checkboxen: Für jede angeklickte Checkbox wird erstmal in der Abrechnung-Tabelle ein Datensatz angelegt bei dem die Mitarbeiter-Daten, die Kostenart und das Reisedatum bereits erfasst sind. Diese werden dann in einem zweiten Formular spezifiziert.
ZitatZitatDie Checkboxen sind für km-Geld, Auto, Hotel, Verpflegungsmehraufwand 12h und Verpflegungsmehraufwand 24h.
Hier ist eine Tabelle eforderlich mit je einem Datensatz für Reisekostenarten.
Das ist kein Problem, die lege ich noch an.
ZitatSachbezüge und Festwerte sind das die Spesenarten ? Im Grunde sind die Spesenarten doch auch nix anderes als Reisekostenarten. Verpflegungsmehraufwand 12h sind doch die Spesen, oder ?
Die wurden vom Kunden so spezifiziert, weil es für bestimmte Kostenarten Festabzüge gibt, die vom MA nicht geändert werden dürfen und Sachbezüge die flexibel eingetragen werden können/müssen. Deshalb habe ich die zwei Spalten angelegt. Evtl. kann man die auch zu einer Spalte zusammenführen.
ZitatIch halte das Grundgerüst so wie das jetzt ist für wenig brauchbar.
Hier muss nachgebessert werden.
Kannst Du mir da einen Tipp geben? Weitere Normalisierung ist m.E. gar nicht mehr möglich und die Tabelle Abrechnung muss so wie sie hier ist dargestellt werden, da diese Daten im Endeffekt in 2 verschiedenen Versionen exportiert werden müssen: an die Lohnbuchhaltung und an die Finanzbuchhaltung, welche unterschiedliche Angaben benötigen.
ZitatAuch wenn Du es woanders als Empfehlung gelesen hast, die Präfixe vor den Feldnamen sind so überflüssig wie ein Kropf und verlängern nur die Schreibarbeit.
Danke für den Tipp. Ich dachte mir wegen der Übersichtlichkeit, aber ich habe es während der Anlage der Abfragen etc. schon bedauert ;) Werde es ändern.
Edit: Ich habe noch einmal wegen der Checkboxen nachgedacht. Ich glaube das hat der Kunde nicht richtig rübergebracht. Die Reisekostenarten befinden sich ja in der Tabelle Spesenarten. Hier müssen also keine ungebundenen Checkboxen in des Formular, sondern ein Listenfeld mit Mehrfachauswahl aus der Tabelle Spesenarten. Dort sind in den Spalten "Festbeträge" bzw. "Sachbezüge" beriets die evtl. zugehörigen Werte erfasst.
Hallo,
Zitatein Datensatz angelegt bei dem die Mitarbeiter-Daten, die Kostenart und das Reisedatum bereits erfasst sind.
das ist falsch. Du musst ja dann für jeden Datensatz die Mitarbeiterdaten und das Datum wiederholen, daher fehlt hier eine Tabelle die die reinen Reisedaten aufnimmt. Und diese Tabelle enthält dann den FS zum Mitarbeiter. Wo ist eigentlich in Deiner jetzigen Abrechnungstabelle das Reisedatum ? Zwischen Mitarbeiter und Abrechnung
muss daher noch eine Tabelle.
Alle möglichen Reisekostenarten würde ich in einer Tabelle zusammenfassen, die man wenn erforderlich noch durch eine Kategorie unterteilt. Auch die Festbezüge kann man da eintragen. Die Spesensätze für die Abwesenheitszeiten sind ja auch fest vorgegeben. Das kann man so machen, dass diese automatisch eingetragen werden. Die Auswahl der entsprechenden Reisekostenarten erfolgt mit einem Kombi. Ein Listenfeld mit Mehrfachauswahl, die ist hier völlig fehl am Platz und macht absolut keinen Sinn. Es gibt ja nur eine mögliche Auswahl je Datensatz.
ZitatDort sind in den Spalten "Festbeträge" bzw. "Sachbezüge" beriets die evtl. zugehörigen Werte erfasst.
nein, falsch, keine 2 Spalten 2 Datensätze 1x Festbetrag und 1x Sachbezug.
Und vergiss mal die Formulare, wenn die DB umstrukturiert ist, wirst Du deine bisherigen Formulare nur noch teilweise (wenn überhaupt) brauchen können.
Auch der Export ist erst mal völlig nebensächlich. Das lässt sich alles später über Abfragen auch für den Export in die gewünschte Darstellung bringen.
Hallo Klaus,
danke erstmal für die Antworten zu so später Uhrzeit. Jetzt dämmerts so langsam ;) Ich will mal kurz die Anforderungen an die DB skizzieren:
Es soll zunächst eine Auswahlmöglichkeit geben einen Mitarbeiter auszuwählen der eine Reise unternommen hat. Jetzt soll der Mitarbeiter aus den Reisekostenarten diejenigen auswählen die er abrechnen möchte. Das Reisedatum muss natürlich auch mit angegeben werden.
Aus diesen Angaben sollen nun so viele Datensätze erzeugt werden wie Reisekostenarten ausgewählt wurden. In diesen Datensätzen soll die MA-ID und das Reisedatum je Datensatz wiederholt und die jeweiligen Reisekostenarten vorbelegt sein. Die restlichen Angaben z.B. für die Kosten bleiben erstmal leer. So wie ich Dich verstanden habe sollte dies in einer Tabelle für die reinen Reisedaten, die ich noch nicht angelegt habe, zwischengespeichert werden (also MA-ID, Datum und evtl. Anzahl der Datensätze).
Im nächsten Schritt sollen dann die angelegten Datensätze bearbeitet werden können um die restlichen Daten hinzuzufügen bzw. zu ändern.
ZitatAlle möglichen Reisekostenarten würde ich in einer Tabelle zusammenfassen, die man wenn erforderlich noch durch eine Kategorie unterteilt.
Die Reisekostenarten befinden sich ja bereits in der Tabelle Spesenarten und dort sogar kategorisiert. Das hatte ich dafür schon vorgesehen und dort befinden sich auch die Festbezüge
ZitatWo ist eigentlich in Deiner jetzigen Abrechnungstabelle das Reisedatum ?
Das kommt in das Feld "ReiseVon" in der tblAbrechnung. Ist wahrscheinlich etwas unglücklich bezeichnet.
ZitatEs gibt ja nur eine mögliche Auswahl je Datensatz.
Das ist richtig. Deswegen sollen ja so viele Datensätze angelegt werden wie Reisekostenarten entstanden sind.
ZitatUnd vergiss mal die Formulare, wenn die DB umstrukturiert ist, wirst Du deine bisherigen Formulare nur noch teilweise (wenn überhaupt) brauchen können.
Schon gelöscht.
Wegen des Exportes mache ich mir auch noch keine Gedanken erstmal muss ja das Fundament stehen, wie Du schon richtig gesagt hattest.
Jetzt bekomme ich aber langsam keinen klaren Gedanken mehr zusammen. Ich werde morgen nicht dazu kommen etwas daran zu arbeiten, erst wieder am Freitag (Da sollte die DB eigentlich fertig sein! Wie immer am lebsten gestern).
Gruß
Jörg
Hier noch als Nachreichung meine aktuellen Beziehungen.
Hallo,
Kurze Bemerkung am Rande (nicht sehr wichtig), - das Feld "UStBetrag"
würde ich eher "UStSatz" nennen. Da steht ja sicher kein nominaler
Betrag drin, sondern eine %-Zahl.
gruss ekkehard
Hallo Ekkehard,
ja, das ist richtig. Werde ich tun. Danke.
Gruß
Jörg