Neuigkeiten:

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

Mobiles Hauptmenü

Daten aus Kombinationsfeld mit Mehrfachauswahl in Textfeld füllen

Begonnen von Asce, April 08, 2018, 20:47:27

⏪ vorheriges - nächstes ⏩

Asce

Hallo zusammen,

Ich möchte in einem Formular, in dem ich meine neuen Datensätze anlege, über ein Kombinationsfeld mit Mehrfachauswahl meine Werte auswählen und diese dann an ein Textfeld übergeben. Die Daten für das Kombinationsfeld kommen aus einer Tabelle um eventuelle Schreibfehler und Varianten zu vermeiden.
Datensatzherkunft: SELECT [tblKombinationsfeld].[ID], [tblKombinationsfeld].[Kombinationsfeld] FROM tblKombinationsfeld ORDER BY [Kombinationsfeld];
Gebundene Spalte: 1
Spaltenanzahl: 2

Das hat den Hintergrund das ich dann im Anschluss ein Endlosformular erstellen will in dem ich dann über ein ungebundenes Textfeld nach diesen Werten filtern kann.

Ich habe bei meiner Suche dabei schon einige Beiträge mit Lösungen gefunden die auch bestätigt wurden, allerdings funktionieren diese bei mir nicht.

Der erste Lösungsansatz war:
Me!Text = Me!Kombinationsfeld
Damit wurde dann statt den hinterlegten Werten nur die ID angezeigt.-> 1;2;3

Wenn ich dann dieses versucht habe:
Me!Text = Me!Kombinationsfeld.Column(2)
wurde wenn nur ein Wert ausgewählt wurde dieser in das Textfeld übernommen, bei zwei gewählten Werten ist das Testfeld wieder leer.

Dann bin ich auf diese Lösung gestoßen:
Private Sub Kombinationsfeld_AfterUpdate()
' Geht jedes angeklickte Element durch und speichert es in einem String

  Dim varPosition As Variant
  Dim str As String
   
  For Each varPosition In Kombinationsfeld.ItemsSelected
      str = str & Me!Kombinationsfeld.ItemData(varPosition) & ", "
  Next varPosition
 
  Me!Text = str
   
End Sub

Das Textfeld bleibt aber leider immer leer.

Hat jemand ein Idee dazu wo mein Fehler liegen könnte?




MzKlMu

Hallo,
lasse es lieber sein, in einer Datenbank speichert man nicht mehrere Werte in einem Feld. Das dürfte eine klassische n:m Beziehung sein zu der man 3 Tabellen braucht.
Die jetzige eigentliche Datentabelle, die Tabelle die Tabelle die die AuswahlIDs (tblKombinationsfeld) bereithält und die noch fehlende 3.Tabelle die die ausgewählten Werte als je ein Datensatz speichert.
Die Tabelle hat dann 2 Fremdschlüssel, einen zum Hauptdatensatz und einen zur getroffenen Auswahl. Gespeichert werden in jedem Fall die IDs, nicht die Klartexte. Dann kannst Du auch problemlos filtern und die Daten in einem Endlosformular auch als je ein Datensatz anzeigen.

Für dies alles braucht man kein VBA.
Lege Dein Vorhaben zu den Akten, es ist für eine Datenbank unbrauchbar. Mit Deinem Vorhaben kann man noch nicht mal ordentlich und einfach filtern.
Gruß Klaus