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
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.
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
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
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
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
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
Ich möchte kostenlos eine Frage an die Mitglieder stellen:
Ähnliche Themen:
- Wenn Mannschaft 1= Mannschaft 1 ist dann Spieler von Mannschaft 1
- Splitten der Excel-Tabelle
- mehrere Tabellen zu einer zusammenfügen
- Wie holt man sich Daten aus einer anderen Tabelle, wenn der Wert aus Spalte A beider tabellen übereinstimmt?
- Eine Grundtabelle soll mehrere Tabellen auswerten und neue Tabellen autom. erkennen und zuordnen

