Hallo Access Community,
folgende Frage(n) hätte ich heute.
Ich habe eine Tabelle mit 2 Feldern. Im 1. Feld (Name: System) steht ein Überbegriff und
im 2. Feld (Name: Materialkurztext) stehen die dazugehörigen Produkte.
Jetzt möchte ich in einem Formular, wenn ich im 1. Feld (Kombinationsfeld) ein ,,System" auswähle
im 2. Feld die dazugehörigen Materialien (Materialkurztext) anzeigt werden. Die Materialien sollen
auswählbar sein (Mehrfachauswahl).
z.B.: 1. Feld (Kombinationsfeld)
Kuchen
Obst
Getränke
2. Feld (Listenfeld) z. B.: bei Auswahl ,,Kuchen"
Schwarzwälder
Obstkuchen
Sachertorte
erscheint.
Ich bin überzeugt das da in der Community eine Lösung parat ist und bedanke mich schon
im Voraus.
Gr. HubertN
Hallo,
die Lösung besteht darin, zunächst das (vermutliche) Mehrwertfeld "Materialkurztext" (was haben "Produkte" mit einem "Materialkurztext" zu tun?) zu entfernen und in eine 2. Tabelle auszulagern.
Beide Tabelle müssen dann über die Schlüsselfelder in Beziehung gesetzt werden.
Wahrscheinlich aber ist der ganze Tabellenaufbau zu überarbeiten und an die Normalisierungsregeln anzupassen. Siehe dazu u. st. Links 1, 1a und 1b.
Erst wenn das umgesetzt ist, kann über Formulare und darin befindliche Listenfelder-Abhängigkeiten nachgedacht werden.
Zitat von: undefined(was haben "Produkte" mit einem "Materialkurztext" zu tun?)
Produkte ist nur ein Beispiel, das Feld heißt Materialkurztext.
So, habe jetzt zwei Tabellen mit jeweils einer ID AutoWert "erzeugt".
Ich habe somit eine mit tblSystem und eine mit tblMaterialkurztext.
Wie schon bemerkt kann ein Feld "System" mehrere Materialien enthalten,
oder umgekehrt mehrere Materialien ein System (wie im Beispiel mit den Kuchen)
Hallo,
Beispiele sollten schon authentisch sein...
Dann lege mal die Beziehungen an und zeige den Screenshot des Beziehungsfensters...
Zeige auch ein paar (authentische) Beispiele der vorhandenen Daten.
Hallo,
ZitatWie schon bemerkt kann ein Feld "System" mehrere Materialien enthalten, oder umgekehrt mehrere Materialien ein System
Unter diesen Bedingungen geht das mit 2 Tabellen nicht. Ein Feld einer Access Tabelle darf immer nur einen Wert enthalten. Du brauchst daher eine 3. Tabelle die das System mit dem Material über die Schlüsselfelder verbindet. Das Konstrukt mit 3 Tabellen nennt sich dann n:m Beziehung.
Ich möchte das noch einmal anders beschreiben.
Ausgangstabelle (System):
ID System Materialkurzbezeichnung
1 Obst Birnen
2 Obst Äpfel
3 Obst Bananen
4 Getränke Bier
5 Getränke Wein
6 Getränke Gin
7 Gemüse Salat
8 Gemüse Gurke
9 Gemüse Karotten
Gewünschte Auswahlmöglichkeit in einem Formular:
Kombinationsfeld: Auswahl z.B.: Obst
Anzeige in einem Listenfeld: Birnen, Äpfel, Bananen
usw.
Ich hoffe es einigermaßen verständlich.
Gr. HubertN
Hallo,
ich gehe davon aus, dass das nur ein unreales Beispiel ist, daher die Frage, kann die Birne auch zu einem anderen System gehören ?
Übertrage die Frage bitte auf Deine realen Bedingungen.
Hallo Klaus,
die realen Daten kann ich leider aus Datenschutzgründen nicht angeben.
Aber das ist ja im Prinzip egal, da der Aufbau der Tabelle genau so ist.
Vielleicht ist die Bezeichnung der Felder (wurde von einer Exceltabelle übernommen)
nicht gut gewählt aber das kann man ja noch ändern.
Zu deiner Frage:
Nein - die Birne muss beim Obst bleiben.
Mir geht es darum das man einen Überblick erhält wenn man "Obst" auswählt,
dann sollen alle dazugehörigen Obstsorten angezeigt werden.
Gr. HubertN
Hallo Hubert,
ZitatAber das ist ja im Prinzip egal, da der Aufbau der Tabelle genau so ist.
Der ist aber falsch, ausser das ist eine Abfrage.
Du brauchst zwei Tabellen; - "Systeme" und "Materialien"
Systeme:
SystemID -> PK (AutoWert, oder ein anderer eindeutiger Wert, optimal: Zahl, LongIteger)
Bezeichnung -> Text
Materialien:
MaterialID -> PK (s.o.)
SystemID_F -> FK (gleicher Datentyp wie in "Systeme")
Bezeichnung -> Text
DS-Herkunft Kombi:
SELECT SystemID, Bezeichnung
FROM Systeme
DS-Herkunft Liste (gesetzt AfterUpdate des Kombis)
DeinListfeld.RowSource = _
"SELECT MaterialID, Bezeichnung " _
& "FROM Materialien " _
& "WHERE SystemID_F = " & Me.DeinKombigruss ekkehard
Vielen Dank ekkehard,
ZitatDS-Herkunft Liste (gesetzt AfterUpdate des Kombis)
Steh auf der Leitung. Wie soll ich das verstehen?
Ansonsten funktioniert alles soweit. Nur das mit dem Felddatentyp "Zahl" (dein Vorschlag als PK)
muss ich mir noch einmal anschauen, da mir bei der Auswahl "nur" Zahlen angezeigt werden.
Oder habe ich da etwas falsch verstanden?
Gr. HubertN
Hallo Hubert,
ZitatWie soll ich das verstehen?
Wie wär's mit OH.
Zitatda mir bei der Auswahl "nur" Zahlen angezeigt werden.
Das verstehe ich nicht. Wenn du die Anzeige im Kombi meinst, musst
du nur die Spaltenbreiten anpassen. Die erste Spalte *) mit der Zahl
bekommt die Breite 0cm, die zweite mit der Bezeichnung stellst du
nach Belieben ein. Dann zeigt dir das Kombi die Bezeichnung an, die
Zahl (ID) ist aber der Wert, den sich die Liste holt (Kriterium in
WHERE-Klausel).
*) Diese Spalte muss auch die
gebundene sein. Die Liste kannst
du genauso einstellen (1. Spalte ausgeblendet)
gruss ekkehard
Hallo ekkehard,
wie gesagt "Steh (stand) auf der Leitung".
Habe die Spalten angepasst. Jetzt sieht man alles.
Vielen Dank für die Lösung.
Eine vermeintliche schwere Lösung ist im Endeffekt wieder ganz "einfach" -
wenn man weiß wie.
Gr. HubertN