PDA

Vollständige Version anzeigen : Hilfe beim erstellen einer Datenbank


Tratschcafe
26.04.2011, 08:17
Moin moin

ich hab Tante Google gefragt ...doch da hab ich nicht wirklich was finden können.
Zwar wurde das Problem hier im Forum und auch in anderen Foren schon besprochen ... doch ich finde irgendwie keinen Anfang....

Folgendes muss ich machen:

Wir sind ca 20 Mitarbeiter die im 3 bzw. 2 Schichtsystem arbeiten.
Alle an diversen wechselnden Maschinen.

Auf einem Formular soll man auswählen können welcher Mitarbeite in welcher Schicht an welcher Maschine arbeiten soll.

Aber ich finde irgendwie nicht den Anfang für eine Tabelle ...

Wer kann denn da mal helfen ???

1000 Danke

Hab das schon mit Word und Excel versucht ... hat auch funktioniert, doch möchte ich auch eine Auswertung machen wer am häufigsten Frühschicht macht .. oder am meisten an Maschine a arbeiten ... usw.
Sicher für euch kein Problem ... für mich schon.
Hab mal vor vielen Jahren ein klein wenig mit Access (97) gearbeitet.

T.C.

FW
26.04.2011, 08:34
... brauchst Du wirklich nur einen Denkanstoß oder bist Du vielleicht in der Job-Börse (http://www.ms-office-forum.de/forum/forumdisplay.php?s=&daysprune=-1&f=48) besser aufgehoben?

Tratschcafe
26.04.2011, 08:37
Also ich würde das schon gern selber machen um vielleicht wieder in Access rein zu kommen.

Toast78
26.04.2011, 08:38
Tabelle Mitarbeiter
Tabelle Maschinen
Tabelle Schichtplan. Der Schichtplan wird über Kombinationsfelder gefüllt und natürlich Schicht und Datum nicht vergessen.

achtelpetit
26.04.2011, 08:39
Der Tipp wurde Dir hier schon einmal gegeben; Du brauchst zuerst ein dem Problem angepasstes Datenmodell. Stell' doch einfach einen Entwurf hier zur Diskussion, dann wird Dir bestimmt gehelft.

Tratschcafe
26.04.2011, 10:00
http://www.tratschcafe.de/hilfe/schicht.png
Hier nun ein Anfang ...

Atrus2711
26.04.2011, 10:07
Hi,

du weißt aber schon, was du da tust?


haben Mitarbeiter, Maschinen und Schichten wirklich nur Namen?! Wo sind z.B. Datumswerte der "wer-arbeitet-wann"-Angaben, wo sind die Kommt- und Geht-Zeiten, ...
Keyfelder miteinander zu verbinden erzeugt 1:1-Beziehungen. Das ist in 99,9% der Fälle unsinnig. So auch hier.
Beziehungen ohne referenzielle Integrität ("Symbole" an den Linien) sind nutzlos.


Das Modell zeugt nicht davon, dass du dir Gedanken gemacht hast.

Lies am besten den Einstieg "Access-Tutorial", dann den "Kelz" (beides in meiner Signatur zu finden).

Toast78
26.04.2011, 10:12
Name ist ein reservierter Begriff. Benutze sprechendere Namen. Was hat die PersonenID mit der MaschinenID am Hut? Sind nur spezielle Personen auf die Bedienung einer Maschine geschult? Wohl eher kaum oder? Dann ist die Bedienung der Maschine von welcher Person doch erst im Schichtplan von Interesse. Also machst du dort Felder für MaschinenID und PersonenID

Tratschcafe
26.04.2011, 10:20
Moin moin

ich hab mir schon Gedanken gemacht ...
Wenn man aber nicht wirklich Ahnung hat kommt dann so was raus :grins:
Aber genau dafür gibt es doch hier das Forum ...
Danke

CptChaos
26.04.2011, 10:25
Das Forum hier gibts als "Hilfe zur Selbsthilfe"...
Wenn Du diese Anwendung/DB wirklich selbst schreiben willst, mußt Du Dich wohl oder übel mit den Grundlagen vertraut machen.

Dazu hat Dir Martin bereits 2 Links genannt, welche ich Dir auch wärmstens empfehle.
Danach beginnt das Datenmodellieren... und zwar mit Bleistift, Papier, Spitzer und Radiergummi ;)

Tratschcafe
26.04.2011, 11:14
hmmm .. sieht wohl so aus als ich doch in die Job-Börse muss.
Denn Access zu lernen wegen 1 oder 2 Sachen ist wohl wie mit Kanonen auf Spatzen schießen.

Danke trotzdem ...

CptChaos
26.04.2011, 11:20
Denn Access zu lernen wegen 1 oder 2 Sachen ist wohl wie mit Kanonen auf Spatzen schießen
passt jetzt nicht ganz zu
Also ich würde das schon gern selber machen um vielleicht wieder in Access rein zu kommen.

Tratschcafe
26.04.2011, 11:21
Ich hatte mir das nur ein wenig einfacher vorgestellt

CptChaos
26.04.2011, 11:29
Für Access sind leider mehr theoretische Kenntnisse notwendig um damit erfolgreich arbeiten zu können.
Im anderen Thread von Dir zum Thema hattest Du Dich ja für Word entschieden; dort kannst Du natürlich mehr durch "Try&Error" erreichen.
Access läßt das auch zu; nur ohne Datenmodell kommst Du erstmal gar nicht soweit.

Ist wie beim Hausbau.
Das Datenmodell bildet das Fundament. Ohne das geht es nunmal nicht.
Und wenn das "wackelig" ist, dauert es nicht lange und am Haus selbst muss nachgebessert werden ;)

Tratschcafe
26.04.2011, 11:32
Wollen wir hier nicht am Thema vorbei diskutieren sonst finden Leute die so was suchen (wie ich) nur unfertige Hilfe.

Danke trotzdem.
Mit wie viel Chips muss man denn rechnen für das erstellen einer Datenbank ?
Für Kenner sicher eine 5 Minuten Sache ...

Atrus2711
26.04.2011, 12:04
Hi,

"Kenner" bist du auch: nämlich der Anforderungen.

Lege fest, was die Datenbank können soll. Und zwar so, dass Fachfremde damit klarkommen.
Umreiße ein paar Beispielauswertungen und -eingabemasken (notfalls eine Kuliskizze fotografieren).
Stell dir vor, die Datenbank wäre schon fertig, und du wolltest sie nun einem Dritten in ein paar Sätzen umreißen.


eine 5 Minuten Sache
Denk doch mal diese 5 Minuten über die Anregungen in #7 nach.

welcher Mitarbeite in welcher Schicht an welcher Maschine arbeiten soll.
Kann jeder immer überall? Sicher nicht. Wovon hängt das ab? Kenntnisse der Mitarbeiter, Planungszeitraum (1 Woche oder 5-Jahres-Plan?), Urlaubs- und Krankheitszeiten, ggf. auch technische Abläufe (z.B. Maschine Y kann ohne Maschine X nicht laufen).

Tratschcafe
26.04.2011, 12:15
Neneee...sooo kompliziert soll das nicht werden.
Jedem Mitarbeite kann an JEDEM Platz arbeiten.
Man soll ja nur auswählen das A diese Woche Frühschicht am Maschine A hat
Mitarbeiter B hab auch Frühschicht aber an Maschine B
Mitarbeiter C hat Frühschicht an Maschine C
Und Mitarbeiter D ist Ersatzmann.
Planungszeitraum ist eine Woche.
Die Mitarbeiter sollte man aus einer Liste auswählen können und bestimmen wann er arbeiten möchte und an welcher Maschine.

Bei uns kann JEDER ALLES :grins:

Atrus2711
26.04.2011, 12:27
Und schon kommen wir weiter:

tblMitarbeiter (ID, Nachname, Vorname)
tblMaschinen (ID, Bezeichnung)
tblSchichten (ID, Bezeichnung; Inhalt nur: Früh, Tag, Nacht (o.ä.))
tblSchichtplan (ID, DatumVon, DatumBis, F_Mitarbeiter_ID, F_Maschine_ID, F_Schicht_ID)


Die unterstrichenen Felder sind Primärschlüssel. Die Felder mit F_ davor haben Beziehungen zum ID-Feld der Quelltabelle (F_Maschine_ID also zu tblMaschinen.ID). Diese Felder kannst du in einem Formular mit Kombifeldern versehen, um die Werte des jeweiligen Vorrats auswählbar zu machen.

Das waren jetzt 2:48 Minuten. Ok so?

Tratschcafe
26.04.2011, 12:45
2.48 ???
Das hätt ich sicher in 2.48 Monaten nicht geschafft :grins:

Ich hab da nochmal was geändert.
Da wir ja nur immer füe die kommende Woche Planen hab ich in der tblSchichtplan die Felder DatumVon, DatumBis weg gelassen.
Auf dem Word Dokument was wir bisher genommen haben, wurde nur die kommende KW (Kalenderwoche) eingetragen.

Sieht dann so aus :
http://www.tratschcafe.de/hilfe/schicht1.png

CptChaos
26.04.2011, 12:50
Es fehlen noch die Beziehungen zwischen tblSchichtplan-tblMitarbeiter und tblSchichtplan-tblSchichten

Ich würde statt der KW auch das tatsächliche Datum von-bis erfassen.
Daraus lässt sich ggf. etwas wie eine KW berechnen und anzeigen.
KW ist keine "Einheit" mit der Du später ggf. rechnen kannst (z.B. für eine Auswertung "Wieviele Tage hat Müller an Maschine X im Zeitraum Y gearbeitet?")

Atrus2711
26.04.2011, 12:58
Hi,

ergänzend zu CptChaos, dem ich mich anschließe:

In tblSchichten sind die Spalten Frühschicht, Spätschicht und Nachtschicht unsinnig. Denn das sind ja eben die Bezeichnungen der Schichten. Die 3 Spalten kannst du ersatzlos entfernen.

Die Beziehungen sollten alle refentiell integer sein (= jeweils Doppelklick auf die Linie, dann referentielle Integrität ankreuzen)

Tratschcafe
26.04.2011, 12:58
Die Sache mit dem Datum ist nur ... öhm ...
Es soll schnell ein Schichtplan erstellt werden ohne die Auswahl mit dem Datum.
Ich hatte das ja auch schon in Word gemacht und präsentiert.
Das kam dann nicht so gut an.
Das Feld mit dem Zeitraum wurde dann einfach nicht befüllt und nach dem Ausdruck einfach mit Edding die KW eingetragen.

http://www.tratschcafe.de/hilfe/schicht2.png

CptChaos
26.04.2011, 13:05
Die Beziehungen sind immer noch unvollständig (Anmerkung von Martin beachten) und falsch.
Wieso setzt Du jetzt wieder eine Relation zwischen tblSchichtplan.ID und tblMitarbeiter.ID bzw. tblSchichtplan.ID und tblSchicht.ID

Bei tblSchichtplan - tblMaschinen hast Du es doch richtig gemacht...
Identisch muß es für die anderen Tabellen erfolgen.

Wie möchtest Du die von mir angenommen, und übrigens von Dir auch eingangs gewünschten, Auswertung vornehmen, wenn Du nur Kalenderwochen und keine echten Datumswerte erfaßt?
Was passiert, wenn ein Mitarbeiter nur an 3 von 5 (oder 7?) möglichen Tagen einer Kalenderwoche arbeitet?
Wie erfasst Du, wer die restlichen 2 (oder 4?) Tage der Woche an der Maschine gearbeitet hat?

BTW: Wir sind jetzt genau dabei dass, was eigentlich auf Papier passieren sollte zu erstellen.
Ein Datenmodell!
Dazu gehört aber erstmal eine konkrete Anforderunge was gemacht werden soll.

Und bitte nicht wieder: "Nur ein einfacher Schichtplan!"; so einfach und trivial ist es nicht wie Du selbst siehst ;)

Atrus2711
26.04.2011, 13:06
Die Beziehung Schichtplan-Schicht ist falsch. Weißt du, was eine Beziehung aussagt? Wenn ja, wie erklärst du diese Beziehung?! Mach das analog zu der Beziehung, die zwischen Maschinen und Schichtplan steht, die ist ok.

Das mit dem KW/Datum-Konflikt könnte man so lösen, dass die KW als Kombifeld dasteht. Die bietet die KWs an und schreibt die Datumswerte (von-bis) in die entsprechenden Felder. Gespeist wird dieses Kombi durch eine Kalendertabelle, die einfach alle Datumswerte nebst KW enthält und z.B. einmalig durch Rüberkopieren aus Excel gespeist werden kann.

Das mit der KW ist im übrigen nicht so ganz einfach. Wann beginnt denn die KW 1/2011 bei euch? Es gibt ca. 3 verschiedene Definitionen für "KW". Daher die Warnung, besser KW nicht als "Einheit" zu nutzen. KW sind Kilowatt, sonst nix (und selbst da müssten sie kW heißen, sonst wärn's KelvinWatt :) ).

Und wenn das alles übrigens eh "wie eingetippt" ausgedruckt wird, warum macht ihr das nicht einfach mit Excel und farbigen Balken?!

Tratschcafe
26.04.2011, 13:10
ok ok ..die Antwort auf deine Frage ist etwas umfangreicher.
Deshalb antworte ich heute Abend wenn ich wieder daheim bin ... wird so gegen 1 Uhr sein ...;)
Ich muss nämlich in besagte Arbeit ...
Danke erst mal euch allen die hier helfen.

Danke

PS:Hab mir das echt einfacher vorgestellt ... aber "learning by doing"
So sah das vorher aus:
http://www.tratschcafe.de/hilfe/schicht4.png

Atrus2711
26.04.2011, 13:15
Das Schwierige beim Datenmodellieren ist, erstmal die Wirklichkeit zu erkennen.

"Siehste, so muss das" funktioniert bei Computern halt nicht.

Den Schichtplan alt könnte ich gar nicht deuten, zumindest die Felder "krank", "Urlaub" und "Samstag" sind mir völlig unklar. Was soll da rein?

Ja bitte
Müller, Meier, Schmitt
zwischen Freitag und Sonntag
2 Helle, ein Kurzer?
kommt das Sams

:confused: :)

Tratschcafe
26.04.2011, 14:56
Da tragen wir ein wenn jemand Krank ist oder im Urlaub ist.

Atrus2711
26.04.2011, 15:02
Und wenn man nicht die ganze "KW", sondern nur 2 Tage Urlaub hat?
Und wenn man nicht die ganze "KW", sondern nur 3 Tage krank ist?
Und was sollten die 5 Kastln da für Samstag?

Sind die Zeilenköpfe eigentlich die Maschinen oder die Mitarbeiter? Susi und 3. Mann klingt eher nach Mensch, 160 A(mpere?) nach Maschine. Könnte auch Mr. 5000 Volt sein :)

Tratschcafe
26.04.2011, 19:39
Also wenn ein Mitarbeiter z.B. Dienstag krank wird dann ist das halt so :-)
Er wird dann händisch in die Spalte "Krank" eingetragen.
Genau so wird verfahren wenn einer mitten in der Woche einen Tag oder mehrere Tage Urlaub nimmt.

Also "Susi" ist auch eine Maschine ... "Susi" deshalb weil sie immer mal rumzickt :-) .. deshalb halt dieser Frauenname.

"3.Mann" ist auch ein Mensch ..klar ..aber es kommt drauf an WER den machen will ..das ist ein Job der die Maschinen bestücken bzw. ein wenig Vorarbeiten macht.

"Samstag" wird z.Z. immer mit ausgedruckt.Wenn es Not tut (lööl) das ein paar Leute arbeiten dürfen dann können die sich dort eintragen.

Tratschcafe
27.04.2011, 00:58
sooo ... was meint ihr ... geht das so mit den Beziehungen ?
http://www.tratschcafe.de/hilfe/schicht5.png

Wen ich die Beziehungen so mache wie @Atrus2711 mein (#21) kommt diese Meldung:
http://www.tratschcafe.de/hilfe/schicht6.png

Toast78
27.04.2011, 06:12
Ja, da stimmt was mit den Datentypen nicht überein. Guck mal in beiden Entwürfen der Tabelle nach.

Atrus2711
27.04.2011, 08:03
Ja, die Datentypen müssen zusammenpassen.
Es passen zusammen:

Datentypen zueinander (Text mit Text, Zahl mit Zahl etc)
Autowert und Long-Integer-Zahl


Am sinnvollsten wird sein, die ID als Autowert und das jeweilige Partnerfeld als Long-Integer-Zahl zu setzen.

Bei der Gelegenheit solltest du dir überhaupt mal die die Datentypen angucken. Die sind bedeutsam.

Tratschcafe
27.04.2011, 09:29
Alle IDs haben den Autowert.
Und in Feldgröße steht "Long Integer".

Atrus2711
27.04.2011, 09:31
Und die Felder der anderen Seite der Beziehung?

Tratschcafe
27.04.2011, 09:39
öhhhm ... ich weiß jetzt nicht was du meinst ... Alles IDs haben den Autowert "Long Integer".
Was meinst du mit "anderen Seiten" ??

Atrus2711
27.04.2011, 09:41
Jede Beziehungslinie verbindet doch zwei Felder. Das eine Feld ist bei dir immer ein ID-Feld des Typs Autowert. Und das jeweils andere?

Tratschcafe
27.04.2011, 09:59
Wenn ich die ID der einzelnen Tabellen unter "Beziehungen" doppelt anklicke sind in den Feldern keine Einträge drin.
Trage ich dort was ein und klicke auf "ok" sind die danach wieder leer :confused:

CptChaos
27.04.2011, 10:02
Öffne die DB
Öffne die Tabelle tblSchichtplan
Prüfe was in den als Fremdschlüssel definierten Feldern für ein Datentyp gesetzt wurde.
Dieser sollte Long Integer sein.
Öffne die entsprechenden Tabellen (z.B. tblMitarbeiter) und prüfe ob bei ID Autowert als Datentyp eingestellt ist.

Atrus2711
27.04.2011, 10:07
Hi,

cptchaos meint die Entwurfsansicht der Tabellen.

Tratschcafe
27.04.2011, 10:13
F_Mitarbeiter_ID, F_Maschine_ID und F_Schicht_ID der tblSchichtplan haben als Felddatentyp "Text"
http://www.tratschcafe.de/hilfe/schicht7.png

Atrus2711
27.04.2011, 10:15
Aus
F_Mitarbeiter_ID, F_Maschine_ID und F_Schicht_ID der tblSchichtplan haben als Felddatentyp "Text"
und
Ja, die Datentypen müssen zusammenpassen.
Es passen zusammen:
• Datentypen zueinander (Text mit Text, Zahl mit Zahl etc)
• Autowert und Long-Integer-Zahl
schlussfolgerst du also was? :idee:

Tratschcafe
27.04.2011, 10:17
Ja ... das F_Mitarbeiter_ID, F_Maschine_ID und F_Schicht_ID der tblSchichtplan einen Autowert besitzen müssen.

CptChaos
27.04.2011, 10:22
NEIN!
ID in den Tabellen tblMitarbeiter, tblSchichten, tblMaschinen ist offensichtlich (und hoffentlich) als Autowert definiert.
Somit müssen die Felder F_... den Datentyp "Long Integer" bekommen.

Nochmals der Hinweis auf die Links zu relationale DBs (Kelz) und Access-Tutorial in Martins und meiner Signatur.
Das an dem wir momentan scheitern sind genau die Grundlagen die dort vermittelt werden... :rolleyes:

Tratschcafe
27.04.2011, 10:36
http://www.tratschcafe.de/hilfe/schicht8.png
http://www.tratschcafe.de/hilfe/schicht9.png

Atrus2711
27.04.2011, 11:11
Sieht gut aus. :winner:

Noch besser sehe es aus, wenn du verstehst, was es mit Datentypen, Beziehungen und Primäörschlüsseln auf sich hat. Einige Fragen und Schlussfolgerungen, die du stellst, würden dir dann gar nicht in die Tastatur kommen.

Wir helfen gerne. Aber ein Grundkurs bzw. entsprechende Einarbeitung, sprich: Lernen, ist durch Hilfe nicht zu ersetzen.

Tratschcafe
27.04.2011, 15:12
Moin moin

ich weiß schon das man hier div. Grundkenntnisse haben muss um weiter zu kommen.
Diese Datenbank die ich erstellen möchte ist nichts offizielles sondern nur für uns Kollegen intern.
Im Grunde ist das auch keine Planung ... denn die machen wir unter uns.
Das ist eher nur ein Anschlag für Kollegen die danach die Arbeit planen.
Also nichts wildes.

Access lernen ist so eine Sache ... Grundsätzlich bin ich schon bereit etwas selber zumachen.Leider reichen meine Kenntnisse dazu nur sehr beschränkt aus.

Die Chance das ich wieder eine solche Datenbank bauen soll tendiert gegen 0 (Null).
Es soll NUR ein wenig das erstellen des von uns geplanten Plans hilfreich sein.
Mehr nicht.
Das der Aufwand so groß ist hätte ich nicht gedacht.

Aber der Anfang ist ja nun gemacht.

Danke erst mal für deine/eure Hilfe.

Gruß Tratschcafe.de

CptChaos
27.04.2011, 15:14
Das ist eher nur ein Anschlag für Kollegen die danach die Arbeit planen.Wenn mit "Anschlag" ein Aushang gemeint ist, dann würde ich den per Word machen und gut... Dafür ist der Aufwand mit Access definitv zu hoch.