Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Multiselect Listbox: bestimmte Werte aufgrund von anderem Feld vorbelegen

Begonnen von kabsi, April 30, 2017, 13:51:08

⏪ vorheriges - nächstes ⏩

kabsi

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

MzKlMu

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.
Gruß Klaus

kabsi

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

MzKlMu

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.
Gruß Klaus

kabsi

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

MzKlMu

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.

Gruß Klaus

kabsi

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

MzKlMu

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.
Gruß Klaus

kabsi

Danke, das probiere ich.
Heute komm ich nicht mehr dazu; sobald ich was getan habe, gebe ich Rückmeldung  ;)

Liebe Grüße
kabsi