Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Eine Tabelle in mehrere Tabellen aufteilen





Frage

Hallo Zusammen, Ich habe folgendes Problem: Meine Access-DB zur Verwahltung von Projekten besteht aus einer Tabelle 'Projekte' mit insgesamt 43 Feldern (Ist sau blöd, ich weiss!). Die Feldnamen sind: ProjektNr, Projektname, Projektbeschreibung, Einordnung, Verantwortlicher, Beteiligte, Status, Projektstart, Projektende, Projektumfang, Dateiablageort, 'Projektverlauf im Überblick' (Datum1 - Datum8, Aktion1 - Aktion8, Bemerkungen1 - Bemerkungen8, Termin1 - Termin8). Problem ist, dass ich die Text-Felddatentypen nicht weiter vergrößern kann, da das maximun erreicht wurde! Außerdem existieren haufenweise Redundanzen. Jetzt meine Frage: Wie normalisiere ich im nachhinein diese Tabelle am günstigsten, sprich wie teile ich sie in mehrere Tabellen auf und was muss ich dabei beachten? Bin über jede Antwort dankbar! Gruß frokzee

Antwort 1 von atHome

Hallo Frokzee,

bemühe doch mal den Tabellenanalyse-Assistenten, der sollte schon ein paar "Dinge" bereinigen. Den Rest dann per Hand.
Gruß
Dieter

Antwort 2 von frokzee

Das hab ich bereits versucht, jedoch auch wieder rückgängig gemacht, da nur "schrott" rauskam! Von daher schließe ich diese Lösung eher aus.

Trotzdem Danke für den Hinweis.

Antwort 3 von ArminPü

Hi,

ich habe verstanden, dass es eigentlich darum geht die Daten zu Normalisieren.

Ich habe es ( bei der Übernahme von excel daten) einmal so gemacht:

1. die entsprechenden Tabellen für Auswahhfelder in Access anlegen.

2. dann die grosse Tabelle nach Excel exportieren.

3. Dann in Excel per Hand die indices der kleinen Tabellen eintragen mithilfe der Cut & Paste o.ä. Funktionen von excel eintragen.

4. Dann wieder die Grosse tabelle nach Access importieren und die Beziehungen nach definieren zwischen den Indices.

Hat einmal ca. 1-3 Stunden gedauert, aber ab dann war Ruhe.

Gruesse Armin

Antwort 4 von struppi

Hallo,
Hier genügt doch scheinbar schon EINE weitere Tabelle um die Sache zu lösen:
Feld 1-12 in die erste Tabelle.
ProjektNR ist mtw die ID.
Und eine zweite Tabelle mit ProjektNR
und den Feldern Datum, Aktion, Bemerkung, Termin.
Beide ProjektNR 1-n verknüfen.
Jetzt kannst Du zu jedem Pojekt mtw 8 - Unendlich Unterdatensätze in der zweiten Tabelle anlegen.
Dazu bindest Du die erste Tabelle in ein Formular ein und die zweite Tabelle in selbiges Formular als Unterformular...
Geht das so?
gruß struppi

Antwort 5 von frokzee

Hi,

also ich hab mir das mal so überlegt: Zusätzlich zu der Tabelle 'Projekte' erstelle ich vier weitere Tabellen, nämlich 'Einordnung', 'Status', 'Umfang' und 'Verlauf'.
In der Tabelle 'Projekte' belasse ich die Attribute ProjektNr, ProjektName, ProjektBeschreibung, ProjektStart, ProjektEnde, Dateiablageort, Verantwortlicher und Beteiligte.

Die Tabelle 'Einordnung' besteht nur aus dem Attribut Einordnung, da dies bei mir nur feste Werte enthält (z.B. Internet, Multimedia, Allgemein etc.).
Das selbe gilt für die Tabellen 'Status' und 'Umfang'.

Die Beziehungen müssten folgendermaßen lauten: Ein Projekt hat entweder 0 oder 1 Einordnung / Status / Umfang. Und die Einordnung / Status / Umfang gehört entweder zu 1 oder n Projekte.

Die Tabelle 'Verlauf' hat eine 1:1 Beziehung und beinhaltet die Attribute Datum1, Aktion1, Bemerkungen1, Termin1, Datum2, Aktion2 ..., Termin8

Jetzt frag ich mir nur, wie ich die Tabellen mireinander verknüpfe und im nachhinein die Daten ändere bzw. verschiebe. In der Datenbank stehen ja schon haufenweise Daten drin!

Hat jemand ne Idee???

Gruß
frokzee

Antwort 6 von Teddy7

Hallo frokzee !
Du solltest keine neue Tabelle anlegen nur um ein Feld auszulagern.
Wie struppi schon gesagt hat:
nur eine neue Tabelle mit Schlüssel = ProjektNr und da die datumsgebundenen Felder (1 - 8) in jeweils einen Satz.
Die Verknüpfung erfolgt dann über die ProjektNr.
Aber vorsicht: ab dann hast Du im Ergebnis der Abfrage bei 8 gefüllten Datums auch 8 Datensätze.
Das füllen der neuen Tabelle macht man mit Tabellenerstellungsabfrage und Anfügeabfragen oder direkt mit VBA-Programmierung.
Versuch mal die neue Tabelle zu erstellen, indem Du eine Abfrage auf die existierende Tabelle machst mit den Feldern ProjektNr und Datum1, Aktion1, Bemerkung1 und Termin1.
Daraus machst Du eine Erstellungsabfrage und machst die neue Tabelle.
Ändere die Feldnamen von Datum1 in Datum usw.
Dann machst Du eine Anfügeabfrage mit den Feldern ProjektNr, Datum2, usw

Gruß
Teddy