Neuigkeiten:

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

Mobiles Hauptmenü

Felddefinition "Kombinationsfeld mit Mehrfachauswahl" auslesen in Text

Begonnen von pinarello, März 23, 2015, 09:26:28

⏪ vorheriges - nächstes ⏩

pinarello

Hallo zusammen,
ich habe eine echte "Nuss" zu knacken, zumindest aus meiner Sicht.
Ich habe eine Tabelle mit einem Datenfeld "Lieferant". Als Kombinationsfeld mit Mehrfachauswahl in der Tabelle definiert.
Im Formular lassen sich somit mehrere Einträge auswählen.
Per VBA läuft die Eigenschaft Lieferant.ItemsSelected ins Leere (liefert nur bei LISTENFELDER einen String zurück).
So: Wie bekomme ich die selektierten Einträge in einen String/Text ausgelesen.
Ich bin am verzweifeln und benötige dringend Hilfe.
Danke Euch
Stefan

MzKlMu

Hallo,
die Antwort wird Dir nicht gefallen. Ich würde unter allen Umständen solche Mehrwertfelder vermeiden. Die sind für eine Datenbank ungeeignet und verhindern den sauberen Aufbau einer DB.
Hier ist eine klassische n:m Beziehung mit einer 3. Tabelle eindeutig zu bevorzugen.
Da solche Felder von allen Entwicklern gemieden werden, wirst Du auch kaum Hilfe bekommen. Mit einer klassischen n:m Beziehung hast Du das Problem erst gar nicht.
Das hat Microsoft erfunden, um dem Einsteiger die Datenbank einfacher zu machen. Aber später wird es dann komplizierter.
Irgendwo bei Microsoft gibt es eine Hilfe Seite zu solchen Feldern, da gibt es 2 Seiten VBA Code zur Auswertung solcher Felder.
Lasse daher die Finger von den Dingern, die sind so überflüssig wie ein Kropf.

Diese Meinung wird in allen mir bekannten Access Foren geteilt.

Übrigens, auch einfache Nachschlagefelder sind in Tabellen zu vermeiden. Siehe hierzu:
http://dbwiki.net/wiki/Access_Anf%C3%A4nger:_Die_Nachteile_von_Nachschlagefeldern

Und wenn diese Felder dann mehrwertig sind (wie Du es vorhast), wird es noch schlimmer.
Gruß Klaus

pinarello

Servus KLaus,
danke für die schnelle Antwort. Ich verstehe Deine Einschätzung. Die habe ich jetzt auch, nach meinen Stundenlangen versuchen. Nun ist aber die Tabelle bzw. das Feld so definiert.
Es kann doch echt nicht sein, das hier MS keine Eigenschaft oder Methode zur Auswertung anbietet. In der HILFE sagst Du steht da der VBA Code. Ich mach mich mal auf die Suche. :-)
Grüße
Stefan

MzKlMu

Hallo,
ZitatNun ist aber die Tabelle bzw. das Feld so definiert.
das lässt sich doch ändern.

Und es ist nicht nur meine Einschätzung.
Gruß Klaus

pinarello

Ja, sicher liese sich das ändern.

ABER: In der Tabelle stehen schon ca. 6.000 Datensätze und in jedem Datensatz ist das Feld Lieferant mit mehreren Werten ausgewählt. Das Feld "Lieferant" lässt sich auch nicht mehr in ein reines Textfeld wandeln.
Shit happens!
;D

pinarello

... halt, Kommado zurück.

Lässt sich doch von Kombinationsfeld auf Textfeld ändern. Einträge bleiben erhalten.

;)

MzKlMu

Hallo,
bis Access2003 gab es solche Felder nicht. Wenn man ein solches Feld direkt anzeigt (über eine Abfrage !) sind dann alle Zahlen zu sehen ?

Ich kann das nicht probieren, da ich nur Access2003 habe.
Gruß Klaus

MzKlMu

Hallo,
dann kannst Du doch einfache über eine VBA Routine das Feld aufteilen und je ein Datensatz in der n:m Zwischentabelle erstellen. 6000 DS sind da kein Problem.

Dann hast Du das auf ordentliche Datenbankfüße gestellt.
Gruß Klaus