Mehrere gleichartige Spalten

Hallo Wissende,

nachdem ich letzte Woche mit meinem Access-Umwissen genervt habe (Chinesische Vokabeln als Datenbank) habe ich mir wirklich das Buch „Access 2010 für Dummies“ geholt und es hat mir viele Grundzusammenhänge erklärt. Abfragen und Formulare sind jetzt für mich kein Problem, ein wenig „Access-Denke“ hab ich auch schon drauf.

Zwei kleine Punkte beschftigen mich dennoch. Ich habe mir sogar überlegt, wie ich das „neutral“ ausdrücke damit ihr die Ausgangslage versteht. Also gegeben sei folgende Personaltabelle (Die PID ist hier die Personalnummer)

PID Mitarbeitername Geburtsdatum
001 Franz Meier 03.05.67
002 Peter Schulz 14.03.78
003 Hans Schmidt 23.11.66
004 Claire Grube 01.01.88
005 Axel Schweiß 31.12.46
006 Rainer Zufall 15.05.54

Nun ist es erforderlich, dass diese Mitarbeiter in verschiedenen Konstellationen zusammenzuarbeiten (max. 3 pro Gruppe). Jeder Mitarbeiter ist in mindestens einer der Gruppen enthalten. Das ist dann auch eine Tabelle. Jede Tätigkeit ist einmalig, also auch der Primärschlüssel. Also etwa

Tätigkeit MA1 MA2 MA3
Datenbank erstellen 001 002 004
Datenbank testen 003 004 006
Kaffee kochen 004
Pizza ordern 001
Müll wegbringen 002 005

Es gibt also eine Basistabelle (wie die Mitarbeiter) und in einer weiteren Tabelle tauchen die dann wieder auf, aber nicht in einer Spalte, sondern in drei.

Es war auch kein Problem, den 1:n-Join von der Personalnummer auf MA1,MA2 und MA3 zu ziehen.

  1. Ich kriege aber keine Abfrage hin, dass er mir statt der Personalnummer an der Stelle Name und Geb.Datum anzeigt.
    Wer kann mir hier den entscheidenden Kick geben ?

  2. Mit diesem Beispiel auch nochmal meine Frage von letzter Woche: Ich brauche dann auch eine Abfrage, wo ich

  • mitbekomme, wenn ein Mitarbeiter ohne Funktion ist oder
  • eine Personalnummer in den Jobs eingetragen ist, zu der kein Name existiert. Wir krieg ich das hin ?

Vielen Dank für eure Unterstützung !

Hans-Jürgen

P.S. wie gesagt, es geht nicht um Personalverwaltung, sondern um was ganz anderes. Das ist also nur ein „Vehikel“ um euch das Problem darzustellen. An der Grundstruktur der „Tätigkeiten-Tabelle“ lsst sich nichts ändern.

Moin Moin,

Abfragen und Formulare sind jetzt für mich kein Problem

sehr gut

Es gibt also eine Basistabelle (wie die Mitarbeiter) und in
einer weiteren Tabelle tauchen die dann wieder auf, aber nicht
in einer Spalte, sondern in drei.

ok, wenn’s denn so sein soll, eine Zwischentabelle Mitarbeiter_Tätigkeit bestehend aus ID_Mit und ID_Tat wäre bestimmt einfacher :smile:

Es war auch kein Problem, den 1:n-Join von der Personalnummer
auf MA1,MA2 und MA3 zu ziehen.

wo? wie?

  1. Ich kriege aber keine Abfrage hin, dass er mir statt der
    Personalnummer an der Stelle Name und Geb.Datum anzeigt.
    Wer kann mir hier den entscheidenden Kick geben ?
  • Abfrage Assistenten öffnen
  • Mitarbeiter-Tabelle hinzufügen
  • Tätigkeiten-Tabelle hinzufügen
  • Beziehungen dort erstellen
    dann stehen dir alle Felder zur Verfügung und du wirst feststellen mit einer Zwischentabelle geht alles viel besser :smile:
  1. Mit diesem Beispiel auch nochmal meine Frage von letzter
    Woche: Ich brauche dann auch eine Abfrage, wo ich
  • mitbekomme, wenn ein Mitarbeiter ohne Funktion ist oder

nutze dafür keine Abfrage, sondern z.B. die DCOUNT Funktion

  • eine Personalnummer in den Jobs eingetragen ist, zu der kein
    Name existiert. Wir krieg ich das hin ?

wie schon gesagt: bei der Eingabe verhindern! mit einem Kombifeld :smile:

P.S. wie gesagt, es geht nicht um Personalverwaltung, sondern
um was ganz anderes.

klar, um deine Vokabeln :smile:

An der Grundstruktur der „Tätigkeiten-Tabelle“ lsst sich nichts ändern.

tja, dann lasse doch die Tabelle wie sie ist und erstelle nur noch die Zwischentabelle. Allerdings könntest du dann auch die Felder Mit1-Mit3 aus der Tabelle löschen, weil überflüssig und „unsauber“ programmiert.

Grundsätzlich vermeide „horizontale“ Datensammlungen bei 1:n Möglichkeiten für (n).

Datensatz mit Feldern
-> Mitarbeiter1 -> Mitarbeiter2 -> Mitarbeiter3 -> n
(ungünstig, wenn z.B. 100 Mitarbeiter dazu kommen)

Access sammelt immer die (n) Daten vertikal:
Datensatz mit Feld = Mitarbeiter

Inhalt des Feldes =
Mitarbeiter1
Mitarbeiter2
Mitarbeiter3
n

Grüße aus Rostock
Wolfgang
(Netwolf)

Moin,

auch wenn ich jetzt schon ein Buch gelesen hab und die Grundlagen kenne, fehlt mir die Erfahrung beim Aufbau einer Datenbank. Trotz Deiner bemühten Erklärungen hab ich leider nicht verstanden, wie die Zwischentabelle genau aufgebaut sein soll.

Dass die Tätigkeiten-Tabelle unsauber ist, sagt mir mein Gefühl ja auch, aber ich hab den gedanklichen Durchbruch noch nicht für die Zwischentabelle.

(Nochmal zum Grundproblem: Die Mitarbeiter sind in Wirklichkeit Schriftzeichen. Die Tätigkeiten sind Vokabeln, die sich aus verschiedenen Schriftzeichen zusammensetzen. Die Schriftzeichen kommen in den Worten mehrfach vor, auch an verschiedenen Stellen)

Gruss

Hans-Jürgen

Moin Moin,

was hast du an meiner Darstellung nicht verstanden:

eine Zwischentabelle Mitarbeiter_Tätigkeit bestehend aus ID_Mit und ID_Tat

mein Beispiel:
Tabellenname: Mitarbeiter_Tätigkeit

  1. Feld = ID_Mitarbeiter
  2. Feld = ID_Tätigkeiten

Ende, mehr nicht

Setze nun aus der Tabelle Mitarbeiter das Feld ID mit dem Feld in der Tabelle Mitarbeiter_Tätigkeit in Beziehung und setze nun aus der Tabelle Tätigkeiten die ID mit dem Feld in der Tabelle Mitarbeiter_Tätigkeit in Beziehung.

Nun sind unendlich viele Möglichkeiten der Mitarbeiter Tätigkeiten möglich.

So, nun musst du nur noch dein Beispiel in die Realität umsetzen :smile:

Grüße aus Rostock
Wolfgang
(Netwolf)