Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: kabsi am April 30, 2017, 13:51:08

Titel: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: kabsi am April 30, 2017, 13:51:08
Hallo und schönen Sonntag

Ich habe ein Formular mit zwei Listboxen, die aus folgenden Tabellen befüllt werden:

Tabelle Sorten:
ID AUTOWERT
Name Text

Tabelle Nahrungsmittel
ID AUTOWERT
Name Text
Sorte Fremdschlüssel aus Tabelle Sorten

Wird nun im Formular im Auswahlfeld aus der Tabelle Sorten der Eintrag "Gemüse" ausgewählt, sollen im Multiselect-Auswahlfeld der zweiten Tabelle all jene Nahrungsmittel ausgewählt werden, denen in der Tabelle der Wert "Gemüse" zugeordnet ist.


Für Hilfe bin ich dankbar.

Liebe Grüße

kabsi
Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: MzKlMu am April 30, 2017, 13:59:24
Hallo,
warum filterst Du das 2. Listenfeld nicht einfach auf die Sorte ?
Du musst ja doch ein zutreffendes Nahrungsmittel auswählen.

Gibt es noch weitere Tabellen ?
Was ist denn die Aufgabe der DB ?

PS:
Sicherheitshalbe folgende Hinweise:
- Name als Feldname ist tabu
- Nenne das eine Feld Sorte und das andere einfach Nahrungsmittel.
- Nenne die ID nicht einfach ID, sondern SorteID, NahrungsmittelID
- Hänge an das Fremdschlüsselfeld ein _F an (SorteID_F)
- Verwende keine Nachschlagefelder in Tabellen direkt, auch keine Mehrwertfelder.
Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: kabsi am April 30, 2017, 14:23:41
Hallo Klaus,
vielen Dank für Deine Antwort.

Filtern nach dem 2. Feld geht nicht. Grund: Es soll möglich sein, zusätzlich zu allen Gemüsesorten z.B. auch noch einzelne Obstsorten auswählen zu können.

Es gibt noch mehrere Tabellen, allerdings haben die keine Berührungspunkte mit den beiden genannten. Diese zwei Felder sind nur dazu da, zu informieren, welche Nahrungsmittel im aktuellen Datensatz verwendet werden. Auf sie wird ansonsten nicht zugegriffen.


Danke für die Tipps bezüglich der Feldnamen  :-)

LG
kabsi
Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: MzKlMu am April 30, 2017, 17:01:47
Hallo,
Zitatwelche Nahrungsmittel im aktuellen Datensatz verwendet werden.
wenn das Datenmodell korrekt ist, kann es zu einem Datensatz nur ein Nahrungsmittel geben.
ZitatEs soll möglich sein, zusätzlich zu allen Gemüsesorten z.B. auch noch einzelne Obstsorten auswählen zu können.
Wenn Du auswählen willst, wieso schreibst Du dann dient nur zur Anzeige ?
ZitatDiese zwei Felder sind nur dazu da, zu informieren, welche Nahrungsmittel im aktuellen Datensatz verwendet werden.
Und welche 2 Felder ?
Zeige mal ein Bild des Beziehungsfensters.
Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: kabsi am April 30, 2017, 20:29:18
Hallo Klaus,

leider kann ich das Beziehungsfenster hier nicht posten.

Es kann pro Datensatz mehrere Nahrungsmittel geben.

Man soll eine Sorte auswählen können und im Multiselect-Feld sollen automatisch alle zugehörigen Nahrungsmittel angehakt werden. Außerdem sollen zusätzlich noch andere Nahrungsmittel ausgewählt werden können.

Für Hilfe, wie ich das in VBA umsetze, bin ich dankbar.

LG
kabsi
Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: MzKlMu am April 30, 2017, 20:42:10
Hallo,
jetzt ist klar was Du mit den Multiselectfeldern willst. Aber es tut mir leid, zu dieser Art Felder kann ich Dir nicht helfen. Du wirst auch eine Weile warten müssen, bis Du da jemand findest, wenn überhaupt. Diese Art Felder will niemand, daher besteht da wenig Erfahrung.

Solche Felder sollte man eigentlich vermeiden, die sind relativ kompliziert in der Handhabung.
Mit einer klassischen n:m Beziehung mit 3 Tabellen (Sorte, Nahrungsmittel, NahrungsmittelSorte) könnte man Deinen Wunsch völlig problemlos realisieren.

PS:
Wenn das Beziehungsbild Firmeninternas preisgibt, so liegt der Verdacht auf ein falsches Datenmodell auch nahe. Feldnamen sollten nur die Art der Daten beschreiben, aber keine Rückschlüsse auf den Inhalt zulassen.

Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: kabsi am April 30, 2017, 21:45:05
Hi,
nein, es würde keine Firmeninterna preisgeben, ich wollte es nur nicht öffentlich posten - Danke, dass Du Dich trotz meiner kryptischen Beschreibung meines Problems angenommen hast.
Du hast recht - in der Erstellung und wenn man ausschließlich auswählen möchte, sind die Felder praktisch und simpel. Anfangs war das auch nur dafür gedacht. Mittlerweile hat sich die Anforderung geändert und ich komme an meine Grenzen...

Ich habe jetzt eine n:m-Beziehung mit 3. Tabelle erstellt, wie von Dir vorgeschlagen. Wie könnte ich das nun im Formular umsetzen?

Danke nochmal und LG
kabsi
Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: MzKlMu am April 30, 2017, 22:58:42
Hallo,
ZitatWie könnte ich das nun im Formular umsetzen?
auch ganz klassisch.
Ein Hauptformular für die Sorte und darin ein Unterformular für die Kombinationstabelle "NahrungsmittelSorte". Hafo und Ufo müssen über die Schlüsselfelder verknüpft sein.
Die zutreffenden Nahrungsmittel werden dann angeziegt bzw. kannst Du dann bei Bedarf per Kombinationsfeld weitere Nahrungsmittel hinzufügen oder durch Löschen eines Datensatzes entfernen.
Titel: Re: Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen
Beitrag von: kabsi am Mai 01, 2017, 12:26:36
Danke, das probiere ich.
Heute komm ich nicht mehr dazu; sobald ich was getan habe, gebe ich Rückmeldung  ;)

Liebe Grüße
kabsi