Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Auswahl der Produktgruppe abhängig vom Hersteller?

Begonnen von Desecrator, November 28, 2012, 15:56:11

⏪ vorheriges - nächstes ⏩

Desecrator

Hallo zusammen,

ich versuch mich zum ersten mal an Access und nutze dabei das Buch "Das Handbuch" von Hölscher. Das Buch taugt mir soweit ganz gut.

Nun möchte ich mich an meiner eigenen Preisliste für Produkte versuchen:

ich hab folgende Tabellen erstellt:

tblManufacturer
tblKategorie
tblArtikel

in Manufacturer gebe ich den Hersteller an, mehr nicht.
In Kategorie hab ich den Hersteller draufbezogen sowie verschiedene Kategorien angelegt.
Z.B.:
Hersteller A liefert Ware der Kategorie B, C, D
Hersteller B liefert Ware der Kategorie C, D, E, F
...

In der tblArtikel nun will ich den Hersteller auswählen (funktioniert) was dann aber die Auswahl der möglichen Ware einschränken soll. Derzeit wird mir noch ALLES im Auswahlfeld angezeigt (also Ware A, B, C, C, D, D, E, F).

Wie also schränke ich die Kategorieauswahl abhängig von der Herstellerauswahl ein? Ob es zusätzlich auch umgekehrt so wäre, wär mir dabei egal.

Danke euch schon mal :)

database

Hallo,

du benötigst eine weitere Tabelle, in der gespeichert wird welcher Hersteller welche Kategorien von waren erzeugt.
Diese s.g. Zwischentabelle dient dazu die n:m Beziehung zwischen Hersteller und Kategorie aufzulösen.

tblHerstKat
Hersteller_ID_F    ----> Fremschlüssel zur tblHersteller
Kategorie_ID_F    ----> Fremdschlüssel zur tblKategorie

In der tblArtikel finden sich neben artikelbeschreibenden Feldern noch Hersteller_ID_F und Kategorie_ID_F als Information darüber
welcher Hersteller den Artikel erzeugt hat und welcher Kategorie dieser zugeordnet ist.

Die Auswahl der von dir gewünschten Informationen passiert dann über s.g. abhängige Kombinationsfelder,
jedoch NICHT in der Tabelle sondern in einem Formular.

Dieses Formular ist an die tblArtikel gebunden und enthält neben den artikelbeschreibenden Feldern 2 Kombifelder

cmbHersteller  mit Hersteller_ID und HerstellerName
cmbKategorie  mit Kategorie_ID und KategorieBezeichnung

Das Kombi cmbHersteller enthält im Ereignis 'Nach Aktualisierung' einen einzigen Befehl - die Liste im cmbKategorie zu aktualisiern und somit der Herstellerauswahl anzupassen.

Zum leichteren Verständnis findest du eine kleines Beispiel im Anhang

HTH



[Anhang gelöscht durch Administrator]

Desecrator

Hi,

danke dir, genau die Problematik mit m:n habe ich mir schon gedacht.
Hab das jetzt mal so umgesetzt.

Aber wie meinst du? In Tabellen sehe ich das eh nie, sondern erst im Formular?
Das wusste ich nicht - danke dir ;)
Bin mit  meinem Buch noch nicht ganz durch wie man sieht :)


database

Hallo,

ZitatIn Tabellen sehe ich das eh nie, sondern erst im Formular
Nicht 'erst im Formular' sondern NUR im Formular  ;)

Eines der wichtigsten Dinge ist es die Daten niemals direkt in die Tabellen einzugeben sondern die Eingaben
stets mittels geeigneter Formulare zu bewerkstelligen.
Eine Ausnahme stellen statische Tabellen dar, die in einer DB eine begrenzte, nicht zu erweiternde oder änderbare Anzahl von Datensätzen enthalten.
Als Beispiel fällt mir da eine Tabelle mit Maßeinheiten ein, die dann über ein Kombifeld in einem Formular zur Auswahl angeboten werden können.

Dropdownfelder in Tabellen nennt man 'Nachschlagefelder' - setze diese nicht ein, du verfälscht damit nur die richtige Sicht auf's Datenmodell
und in Beachtung des oben gesagten bringen sie dort sowieso keinerlei Vorteile - Nachschlagefelder sind von Übel (ich zitiere hier die oftmals getätigte Aussage von MzKlMu)

Schau dir neben deinem Buch mal die Grundlagen auf dbwiki an - über den Link #5 in meiner Signatur gelangst du zum Wiki.