Mit dem folgenden Programmcode ist es mir zunächst erfolgreich
gelungen aus dem Listenfeld "Lst_B_Zutaten" den selektierten Wert
auszulesen :
Dim Sel As Variant
Dim str_B_Zutat As String
Dim ln_B_Zutat_ID As Long
Sel = Me.Lst_B_Zutaten.ItemsSelected(0)
str_B_Zutat = Lst_B_Zutaten.ItemData(Sel)
Mein Problem ist es, dass ich nicht nur die Zutat aus dem Listenfeld
benötige, sonder auch die zugehörige ID. Aus diesem Grund habe ich
zunächst die Die Datenherkunft des Listenfeldes von
SELECT
AbS_KO_Zutaten_Sortierung.Name_deutsch
FROM
AbS_KO_Zutaten_Sortierung;
auf
SELECT
AbS_KO_Zutaten_Sortierung.Name_deutsch,
AbS_KO_Zutaten_Sortierung.ID
FROM
AbS_KO_Zutaten_Sortierung;
geändert. Anschließend habe ich die Spalteneigenschaft der ID Spalte
auf 0 gesetzt, da in dem Listenfeld nur die Zutat, nicht aber die ID
stehen soll.
Ist es nach dieser geänderten Datenherkunft nicht möglich mit
"ItemsSelected" auf die ID der Zutat zuzugreifen ?
Wenn mir hier jemand helfen einen funktionierenden Code mitteilen
könnte, währe ich wirklich ausgesprochen dankbar (;->).
Beste Gruesse
Geza Aschoff
Geza Aschoff schrieb:
üblicherweise macht man es so:
Die Datensatzherkunft enthält als erstes Feld eine gebundene Spalte (die
ID) und als zweites die anzuzeigende Spalte.
Für das Kombinationsfeld stellst Du die Eigenschaften Spaltenanzahl und
Spaltenbreite auf 2 und 0cm ein, somit wird die erste Spalte zwar
angezeigt, aber nur mit der Breite 0cm, die zweite Spalte nimmt den Rest
der vorhandenen Breite ein.
So kannst Du die ID ganz einfach mit Me.Kombinationsfeldname auslesen, die
zweite Spalte, also hier die Zutat, mit Me.Kombinationsfeldname.Column(1).
Wenn Du nur das aktuell ausgewählte Element auslesen willst, brauchst Du
dafür kein ItemsSelected.
Ciao
André
--
http://www.access-im-unternehmen.de
http://www.access-entwicklerbuch.de
Geza Aschoff schrieb folgendes:
Onlinehilfe Stichwort "Column" sollte dir weiterhelfen
varEintrag=Listenfeld.Column(Spalte, Zeile)
--
Gruß
Gunter
_________________________________________________
Access FAQ: http://www.donkarl.com
home: http://www.avenius.com - http://www.AccessRibbon.de
Geza Aschoff wrote:
>
> Sel = Me.Lst_B_Zutaten.ItemsSelected(0)
> str_B_Zutat = Lst_B_Zutaten.ItemData(Sel)
Zusaetzlich zu Andre's Kommentar noch eine Anmerkung:
ItemsSelected() gibt einen Fehler zurueck, wenn noch kein Item ausgewaehlt
worden ist. Ausserdem verwendet man das fuer Listenfelder, bei denen
Mehrfachauswahl erlaubt ist. Solange du nur einen einzelnen DS auswaehlst,
solltest du .Value fuer die gebundene und .Column(x) fuer die weiteren
Spalten verwenden. Siehe auch www.donkarl.com/?FAQ4.15
Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com
Geza Aschoff <ge...@netcologne.de> schrieb:
> Mit dem folgenden Programmcode ist es mir zunächst erfolgreich
> gelungen aus dem Listenfeld "Lst_B_Zutaten" den selektierten Wert
> auszulesen :
ich habe da ein zwei generelle Anmerkungen zu Deinem Code:
> Dim Sel As Variant
> Dim str_B_Zutat As String
> Dim ln_B_Zutat_ID As Long
>
> Sel = Me.Lst_B_Zutaten.ItemsSelected(0)
Du solltest statt "Me." lieber "Me!" schreiben. Schau dazu auch mal
hier: www.donkarl.com?FAQ6.3
> str_B_Zutat = Lst_B_Zutaten.ItemData(Sel)
Hier sprichst Du ein Steuerelement direkt an, ohne vorangestelltes
"Me!". Das funktioniert zwar, kann aber später zu Problemen führen.
Daher hier unbedingt ergänzen:
str_B_Zutat = Me!Lst_B_Zutaten.ItemData(Sel)
CU
--
Thomas
Homepage: www.Team-Moeller.de