Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Projektdatenbank mit Stunden

Begonnen von ZickZack, September 26, 2011, 08:58:56

⏪ vorheriges - nächstes ⏩

MzKlMu

#15
Hallo,
die Stunden müssen in die Zwischentabelle, das ist ja (auch) der Sinn der Zwischentabelle, die Stunden für die Kombination Mitarbeiter-Studie zu erfassen. Für den Zeitraum würde ich ein Datum verwenden, nicht Monat + Jahr. Notfalls mit dem 1. oder 15. eines Monats.
Warum beantwortest Du nicht alle Fragen?
ZitatWo sind denn die Kategorien geblieben,

Lade lieber die DB hoch, statt eines PDF.
Gruß Klaus

ZickZack

#16
Ich dachte, die Kategorie bzw. Fachbabteilung kann man in die Tabelle "Projekt/Studie" eintragen. Gehen wir bitte nun nur noch vom Beispiel "Studie/Fachabteilung" aus.

Ich habe mir einge Fragen gestellt und bin auf das gekommen:

Studie
Eine Studie hat eine Fachabteilung
Eine Studie kann mehrere Mitarbeiter haben
Eine Studie hat einen Hauptverantwortlichen
Eine Studie hat eine Nummer
Eine Studie kann nur einen Hauptverantwortlichen haben

Fachabteilung
Eine Fachabteilung hat mehrere Studien

Mitarbeiter
Ein Mitarbeiter hat mehrere Studien

Hauptverantwortlicher
Ein Hauptverantwortlicher kann mehrere Studien haben


Muss ich für den Hauptverantwortlichen auch eine Tabelle machen?
Wenn ja, dann ist es vom Typ her dieselbe Tabelle wie "Fachabteilungen". Aber was für eine Beziehung haben diese Tabellen?
Und bei der Tabelle "Mitarbeiter_Studie" bräuchte ich fast ein konkretes Beispiel mit den Stunden.

Der Plan / Gedanke:

tblStudie
StudieID (Primärschlüssel)
Studienname
Nummer
Hauptverantwortlicher_f (Fremdschlüssel zu ,,HauptverantwortlicherID")
Fachabteilung_f (Fremdschlüssel zu ,,FachabteilungID")

tblFachabteilung
FachabteilungID (Primärschlüssel)
Fachabteilungsname

tblHauptverantwortlicher
HauptverantwortlicherID (Primärschlüssel)
HauptverantwortlicherName

tblMitarbeiter
MitarbeiterID (Primärschlüssel)
NameVorname (Fremdschlüssel zu ,,Mitarbeiter_f")
Funktion

tblMitarbeiter_Studie (Zwischentabelle)
Mitarbeiter_f (Fremdschlüssel zu ,,Mitarbeiter-ID")
StudieID_f (Fremdschlüssel zu ,,Studie-ID")

Im Anhang die DB.

MzKlMu

Hallo,
ich kann das Zip Archiv nicht öffnen.
Konvertiere die DB nach Access2003, mit Access2007/2010 bin ich nicht so vertraut.

Noch einige Anmerkungen:

Die Stunden mit Datum müssen in die Zwischentabelle, ein Feld für die Stunden (Datentyp Double) und ein Feld für das Datum.
Die Tabelle für die Hauptverantwortlichen ist überflüssig. Die Mitarbeitertabelle reicht.
NameVorname ist kein Schlüsselfeld.
Ich sehe die Tabellen wie folgt:

tblStudie
StudieID (Primärschlüssel)
Studienname
Nummer
Hauptverantwortlicher_f (Fremdschlüssel zu ,,MitarbeiterID")
Fachabteilung_f (Fremdschlüssel zu ,,FachabteilungID")

tblFachabteilung
FachabteilungID (Primärschlüssel)
Fachabteilungsname

tblMitarbeiter
MitarbeiterID (Primärschlüssel)
NameVorname (was willst Du hier mit einem Fremdschlüssel?)
Funktion

tblMitarbeiter_Studie (Zwischentabelle)
Mitarbeiter_f (Fremdschlüssel zu ,,MitarbeiterID")
StudieID_f (Fremdschlüssel zu ,,StudieID")
Stunden
BuchungsMonat (Als Datum !!)
Gruß Klaus

ZickZack

#18
Danke für deine Antwort.
Ich sehe dass ich den "Hauptverantwortlichen" genauer hätte erläutern müssen. Dieser ist kein Mitarbeiter sondern sozusagen eine externe Person.

Und zu den Stunden. Wenn ich es so mache wie du es vorschlägst, kann ich dann noch für jeden Monat einzeln die Stunden eintragen? Ich dachte, das müsste in einem Datensatz gemacht werden, die Felder wären dann Jan, Feb etc.
Oder denke ich hier wieder an Excel? Kann ich all die einzelnen Datensätze schlussendlich so anzeigen lassen, dass dasselbe Ergebnis dabei rauskommt?

Der Fremdschlüssel bei "NameVorname" war wohl ein Denkfehler. Hat mir beim überprüfen auch kein Sinn ergeben.

MzKlMu

Hallo,
ZitatIch dachte, das müsste in einem Datensatz gemacht werden, die Felder wären dann Jan, Feb etc.
Oder denke ich hier wieder an Excel?
Genau, das ist Exceldenke und falsch. Wie soll denn die Stundenerfassung fortgeführt werden, Du brauchst doch auch das Jahr. Legst Du dann die felder Jan11, Feb11, Mär11...........Jan20, Feb20 usw. an?
Eine DB wächtst durch die Daten immer nach unten (Zeilen=Datensätze) und niemals in die Breite (Spalten=Felder). Es sei denn, man hat ein Feld vergessen.

Zum HV:
ZitatDieser ist kein Mitarbeiter sondern sozusagen eine externe Person.
Mann kann das trotzdem in einer Tabelle führen, das hängt von den benötigten Feldern ab.
Was wird zu einem HV erfasst?
Was wird zu einem Mitarbeiter erfasst?
Gruß Klaus

ZickZack

#20
Ich möchte den HV wie die Fachabteilung behandeln. Beides kann in mehreren Studien vorkommen. Bei der Dateneingabe nutze ich dann eine Drop-Downliste.

Zu einem HV wird wie zur Kategorie eigentlich nichts erfasst, sie werden lediglich zugewiesen.
Zu einem Mitarbeiter werden hauptsächlich die Stunden erfasst.


Zu den Stunden.
Ich dachte mir dass in einem Datensatz die Monate vorkommen und in einem Feld das Jahr.
Jahr ¦ Jan ¦ Feb ¦
2011¦15   ¦ 30  ¦

MzKlMu

Hallo,
ZitatIch möchte den HV wie die Fachabteilung behandeln. Beides kann in mehreren Studien vorkommen. Bei der Dateneingabe nutze ich dann eine Drop-Downliste.
Das hat mit den Tabellen nichts zu tun.
ZitatZu einem HV wird wie zur Kategorie eigentlich nichts erfasst, sie werden lediglich zugewiesen.
Zu einem Mitarbeiter werden hauptsächlich die Stunden erfasst.
So war die Frage nicht gemeint. Ich wollte wissen welche Infos zu einem Mitarbeiter und welche Infos zu einem HV erfasst werden.

Mitarbeiter: NameVorname ??
HV: NameVorname ??

ZitatIch dachte mir dass in einem Datensatz die Monate vorkommen und in einem Feld das Jahr.
Jahr ¦ Jan ¦ Feb ¦
2011¦15   ¦ 30  ¦
Nein, falsch.

So:
MitarbeiterID_F   StudieID_F    Buchungsdatum     Stunden
      1                1         02.10.2011          2
      1                1         03.10.2011          3
      1                1         04.10.2011          4
      1                2         02.10.2011          5
      1                2         03.10.2011          2
      1                2         04.10.2011          2
usw. immer fortlaufend, auf immer und ewig.

Eine erfassung mit vollem Datum kann auch monatsweise ausgewertet werden. Wenn Du keinen Tag hast, nimmst Du den 15. eines Monats.
Gruß Klaus

ZickZack

ZitatSo war die Frage nicht gemeint. Ich wollte wissen welche Infos zu einem Mitarbeiter und welche Infos zu einem HV erfasst werden.

Mitarbeiter: NameVorname ??
HV: NameVorname ??
Genau so.

ZitatEine erfassung mit vollem Datum kann auch monatsweise ausgewertet werden. Wenn Du keinen Tag hast, nimmst Du den 15. eines Monats.
Ja, ich würde dann den 15. nehmen.

MzKlMu

Hall0,
dann ändere die Tabellen wie folgt:

tblStudie
StudieID (Primärschlüssel)
Studienname
Nummer
Hauptverantwortlicher_f (Fremdschlüssel zu ,,PersonID")
Fachabteilung_f (Fremdschlüssel zu ,,FachabteilungID")

tblFachabteilung
FachabteilungID (Primärschlüssel)
Fachabteilungsname

tblPersonen
PersonID (Primärschlüssel)
NameVorname
Extern (Ja/Nein Feld)
Funktion

tblPerson_Studie (Zwischentabelle)
Person_f (Fremdschlüssel zu ,,PersonID")
StudieID_f (Fremdschlüssel zu ,,StudieID")
Stunden
BuchungsDatum
Gruß Klaus

ZickZack

#24
Ich würde es eigentlich gerne so lassen wie ich es jetzt habe. Würde es den Vorteile mit der neuen Variante geben?

Ich habe nun zwei Formulare erstellt um zu sehen wie es in etwa aussehen könnte.
Was ich bisher noch nicht auf Anhieb erreichen konnte, war die Abfrage an Stunden für eine Fachabteilung.

DF6GL

#25
Hallo,

"gerne so lassen wie ich es jetzt habe."

naja, dann lass es doch so. Der Tabellenaufbau ist doch identisch mit dem von Klaus vorgeschlagenen...


Lediglich die Verknüpfungsarten solltest Du überall auf "1" setzen und für die Detailtabelle (tbl_Mitarbeiter_Studie) ein EndlosFORMULAR (anstelle einer TAbellenansicht) als UFO im Einzel-Formular (Haupttabelle tbl_Studie) einsetzen.    Für Felder, deren Wert aus den Stammtabellen (z. B. tbl_Mitarbeiter) ausgewählt werden kann/soll, bieten sich Kombifelder an.



Weiterhin ist die Verwendung von Hyperlinks zum Öffnen anderer Access-Objekte nicht zu empfehlen.


btw: Bessere Benamsung der Formulare wäre auch angebracht. (nicht "tbl_" als Prefix bei einem Formular benutzen, "frm_" wäre passender und weniger verwirrend.)


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

ZickZack

#26
Hallo

Ich habe versucht all die Tipps zumzusetzten. Es sieht schon um einiges besser aus.
Allerdings finde ich die Eingabe der Stunden bzw. die Darstellung mit dem "15.01.2011" etc. etwas ungewöhnlich. Mich nimmt es wunder wie dass dann in der Praxis aussieht wenn ende Jahr 3 Leute an einer Studie gearbeitet haben.

Wie auch immer, vielen Dank euch beiden.

Jetzt happerts noch bei der Abfrage. Mit meiner ursprünglichen Vorgehensweise konnte ich den Gesamtstundenaufwand für eine Fachabteilung anzeigen lassen. Da nun die Struktur etc. nicht mehr gleich ist, weiss ich nicht genau wie ich vorgehen muss.


DF6GL

Hallo,

naja, es ist kaum einer der Tipps umgesetzt, speziell der der (Endlos-)Formulare anstelle der Tabellenansicht.

Mit Formularen kannst Du der Layout-Formatierung (Datenanzeige,-eingabe,-überprüfungen) freien Lauf lassen. Ein bisschen VBA-Programmierung(skenntnisse) wäre dabei  nicht schlecht...



"..wie ich vorgehen muss."


Geh in den Abfrageentwurf, füge die nötigen (beteiligten) Tabellen hinzu, gruppiere evtl. nach einem bestimmten Feld ( hier z. B. die Fachabteilung(-ID) ) und stelle "Summe" für das Feld "Stunden" ein.

Evtl. sind Kriterienwerte für die Eingrenzung der DS noch nötig (z. B. ein Datumsbereich).


Aktuelle Gersamtstunden einer Studie können auch direkt im Unterformular (siehe oben) berechnet und angezeigt 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

MzKlMu

Hallo,
ZitatAllerdings finde ich die Eingabe der Stunden bzw. die Darstellung mit dem "15.01.2011" etc. etwas ungewöhnlich. Mich nimmt es wunder wie dass dann in der Praxis aussieht wenn ende Jahr 3 Leute an einer Studie gearbeitet haben.
Was nimmt Dich da Wunder und was genau findest Du ungewöhnlich?

Wenn man Daten hat, die auf einem Datum bassieren (und das tun sie ja, auch wenn nur Monat und Jahr gebraucht werden) sollte man immer ein Datum verwenden. Es vereinfacht vieles, weil man von einem Datum problemlos 5 Monate addieren oder abziehen kann. Das kann für Auswertungen durchaus wichtig werden. Z.B. wie viele Stunden vom Oktober 2011 bis Februar 2012. Versuche das mal mit nur Monat und Jahr?

Übrigens kannst Du das Feld durchaus so formtieren, dass nur Monat und Jahr angezeigt wird.

Ich würde Dir trotzdem raten, die Personen (Mitarbeiter und HV) in einer Tabelle zu führen, es vereinfacht die Datenpflege.
Gruß Klaus

ZickZack

#29
Zitat von: DF6GL am Oktober 05, 2011, 16:35:24
Hallo,

naja, es ist kaum einer der Tipps umgesetzt, speziell der der (Endlos-)Formulare anstelle der Tabellenansicht.
Was verstehst du denn unter Endlos-Formular? Das Formular "Mitarbeiter_Studie" erweiter sich ja selbständig mit jedem weiteren Datensatz.

Die Abfrage mit den Stunden funktioniert nun. Da fehlte eine Tabelle weshalb es wohl mit den Beziehungen nicht geklappt hat.


@MzK|Mu

Die Datenbank wird nicht so gross werden. Mitarbeiter bleibt unter 20 und Verantwortliche wird es auch nicht mehr wie 50 geben. Ich lasse es deswegen lieber so. Die Abfrage der Daten wäre für mich wieder komplizierter wenn ich die Mitarbeiter und Verantwortlichen in einer Tabelle habe.

Die Darstellung finde ich nur ungewöhnlich weil ich mich gewohnt war, Jan - Dez auf einmal zu sehen.

Es wäre optimal wenn ich Formular erstellen könnte, das für jeden Mitarbeiter ein Reiter hat und in jedem dieser Reiter, befindet sich ein Felder für die Monate.

Allerdings verlangt das wohl etwas an Programmierkenntnisse. Denn wenn etwas in ein Feld eingetragen wird, müsste ein Datensatz erstellt werden. Ist soetwas überhaupt möglich? Also mit einem Textfeld welches nicht direkt einem Tabellenfeld zugewiesen ist.

----

Im Anhang befindet sich die neuste DB mit dem Beispiel zu den Reitern. Das Beispiel befindet sich in dem Formular "Studien".

[Anhang gelöscht durch Administrator]