Access-Tabelle erstellen

Amateur X

Stammgast
Kann mir jemand sagen, wie ich in Access eine Tabelle erstelle, deren Felder von den Inhalten einer anderen Tabelle/Abfrage definiert werden, dh. wenn ich die Datensätze der Grundlagentabelle ändere, ändert sich automatisch die Feldliste der zweiten Tabelle?
 

Officer

Stammgast
Hallo Amateur X

Access hat als Grundlage die Tabellen, welche Beziehungen aufweisen, d.h. verknüpft werden können. Des weiteren ist Access eine Datenbank, wo die Tabellen die Daten enthalten, die Werte und deren Auswahl aber in einem Formular eingegeben werden. Ich weiss, dass es leider auch auf Tabellenebene diese Möglichkeit gibt. Ich rate Dir aber sehr stark davon ab, da Du auf kurz oder spät damit probleme bekommst. Vielleicht weisst Du das schon alles, ich halte es aber trotzdem für wichtig, diesen Unterschied klar hervorzuheben.

Erzähl 'mal, was Du für Daten hast und was Du wo sichtbar machen möchtest.
 

Amateur X

Stammgast
Danke, Grundlagen sind mir bekannt. Ich möchte eine Tabelle 1, in welcher ich als Datensatz definieren kann, wie in Tabelle 2 die Feldliste aussieht (siehe Attachments). Ich möchte nicht wenn ich die Liste ändere, an beiden Stellen die Änderungen machen müssen.
 
Zuletzt bearbeitet:

Officer

Stammgast
Hallo Amateur X

Verstehe ich das richtig: Alle Felder, welche Du in der Tabelle 1 in Spalte 'Feldname' einträgst, sollen in der Tabelle 2 als Tabellenüberschriften vorhanden sein?! Das heisst: Wenn Du in der Tabelle 1 bei 'Feldname' 'Feld AmateurX' eingibst, dass in der Tabelle 2 eine Überschrift 'Feld AmateurX' eingetragen wird? Ich kann mir nichts vorstellen, wo ein solches Vorgehen in einer Datenbank Sinn machten würde. Vielleicht kannst Du mir nächerbringen, was Du damit machen willst, und wir finden eine Lösung.

Darf ich weiter den Tipp geben, Feldnamen nie mit einem Leerschlag zu definieren, da dies jede Menge Probleme nach sich zieht.
 

Amateur X

Stammgast
Danke für den Tipp mit den Leerschlägen.

Also, ich möchte für ein Produkt (z.B. Auto) eine Optionenliste (Tabelle 1) in welcher ich Angaben über Gewicht, Preis etc. der jeweiligen Option (z.B. Klimaanlage, Airbag, etc.) verwalte.

Daneben brauche ich eine Tabelle 2 für alle bestellte Autos, wo ich erfassen will, welche Optionen (siehe Tabelle 1) dazubestellt sind. Wenn ich dies so kombinieren kann, gelingt es mir dann den Preis und alle anderen Angaben zusammen zurechnen.
 

Officer

Stammgast
Meine Angaben und Erklärungen bezeiehn sich auf Office 03, wobei der Aufbau der Tabellen unabhängig von der Version ist. Aber die Menüs und so musst Du im 07 selber suchen.

So wie ich Dich verstehe, brauchst Du schon 'mal mind. 3 Tabellen. Mein Gedankengang:
- Jedes Auto hat genau einen Preis und genau ein Gewicht, weshalb diese Angabe in die gleiche Tabelle kommen. Wenn Du pro verschiedene Automarken und dazu verschiedene Modelle hast, braucht es nochmals mindestens 1 Tabelle mehr.
- Jedes Auto hat keine Zusatzoptionen, eine Zusatzopton oder mehrere Zusatzoptionen. Deshalb müssen diese auf weitere Tabellen verteilt werden.

Ich würde das so aufbauen:

Tabelle1:
Name: tblProdukt
Feldernamen Felddatentyp Spezielles
ProduktID Autowert Primärschlüssel
ProduktName Text Feldgrösse anpassen
Gewicht Zahl Feldgrösse must Du anpassen, je nach dem, wie genau Du die eingabe machen willst
Preis Zahl dito
Weitere Felder, welche nur mit dem jeweiligen Auto zu tun haben.

Tabelle2
Name: tblOptionen
Feldernamen Felddatentyp Spezielles
OptionenID Autowert Primärschlüssel
OptionenArt Text Feldgrösse anpassen
Weitere Felder, welche nur mit den jeweiligen Optionen zu tun haben.

Tabelle3
Name: tblProduktOptionen
Feldernamen Felddatentyp Spezielles
fProdukt Zahl Datentyp LongInteger
fOptionen Zahl dito


Die Namensgebung habe ich mir, aufgrund von Hinweisen der Access-Newsgroup so erarbeitet und haben sich bewährt. Aber selbstverständlich sind dies nur Vorschläge. Beispiel: tbl für Tabelle, frm für Formular etc. Es gibt auch die Reddick-Namenskonvention, welche ich versuche anzuwenden. Siehe http://de.wikipedia.org/wiki/Reddick-Namenskonvention welche den Code einfacher lesbar machen. Das 'f' vor den Feldnamen in Tabelle 3 steht für 'Foreign Key', da die Primärschlüssel der anderen Tabelle enthalten.

Jetzt gehst Du zu den 'Beziehungen' und fügst 'mal die 3 Tabellen ein. Danach ziehst du mit der Maus das Feld 'ProduktID' auf 'fProdukt' und Bestätigst die Verbindung. Danach das gleiche mit 'OptionenID' auf 'fOptionen'.

Nun haben wir das Grundgerüst. Wenn Du Fragen dazu hast, dann melde Dich.
 
Oben