PDA

Vollständige Version anzeigen : Listenfeld Werte auslesen


SteffenF
02.10.2002, 16:53
Hallo!
Ich glaube, ich habe schon ein wenig zu lange an diesem Listenfeld "herumgewerkelt"...

Also, ich hab ein Listenfeld, es ist einspaltig und wird mit Werten aus eine Tabelle gefüllt.

Wenn ich nun einen Eintrag markiere und
"Me.Liste0.Value" anspreche, dann erhalte ich die ID des Feldes. Doch ich benötige den Text, der im Listenfeld angezeigt wird und markiert ist?!? :confused:

Ich hoffe auf schnelle Antwort, und sage schon mal Danke!
SteffenF

Mr. Pelle
02.10.2002, 16:56
Moin moin,

du kannst in den eigenschaften deines listendfeldes unter "daten" die gebundene spalte eingeben. Stelle diese auf eins und es sollte funktionieren.

gruß
pelle

SteffenF
02.10.2002, 17:09
Danke,
ich musste die Einstellung auf 2 Stellen, da die Tabelle, die dahinterliegt 2 Spalten hat. Und in der 2ten Spalte stehen die benötigten Daten.

Doch nun habe ich ein anderes Problem:
Wie kann ich nun Werte über das Listenfeld löschen, die in einer Tabelle stehen???
Bevor ist die Einstellung geändert habe ging's so:

Dim dbFree As Database
Set dbFree = CurrentDb

dbFree.Execute "DELETE FROM NHamNames WHERE Kennummer = " & Me.Liste0.Value

Wenn ich nun "Kennummer" in den Bezeichner der 2ten Spalte ändere funktioniert es nicht mehr!

Mr. Pelle
02.10.2002, 17:22
Wenn der Text in dem Listenfeld nur einmal vorkommt, kannst du den SQL-string auf


"DELETE FROM NHamNames WHERE Listenfeld = " & Me.Liste0.Value


ich hoffe, dass es so funktioniert

pelle

SteffenF
02.10.2002, 17:27
Ne, das geht auch so nicht.

Kann man nicht über irgendeine andere Funktion abfragen, welcher eintrag markiert ist und angezeigt wird?

Mr. Pelle
02.10.2002, 17:33
welcher eintrag markiert ist erfährst du mit:


listenfeld.listindex


und daten von einem eintrag auslesen funktioniert mit

listenfeld.itemdata(zeilennummer)


beachte, dass erste zeile hat zeilenindex=0
zweite=1

gruß
pelle

SteffenF
02.10.2002, 17:41
Hmmm,
das klappt nun aber auch wieder nicht, weil ich ja nicht den gleichen Index in der Tabelle, wie in dem Listenfeld habe.

SteffenF
02.10.2002, 17:43
Kann ich innerhalb des Codes die Bezugszeile des Listenfeldes ändern???

Mr. Pelle
02.10.2002, 17:44
meinst du, dass die einträge in der tabelle nicht die gleichen zeilennummern in deinem listenfeld haben?

SteffenF
02.10.2002, 17:45
ja, weil der index der tabelle ja ein autowert ist

Nouba
02.10.2002, 17:45
Hallo,

die nur zur Laufzeit zur Verfügung stehende Eigenschaft der Listbox Listbox.Column(Spaltennr - 1) bringt das gewünschte Resultat.

SNowack
02.10.2002, 17:45
Hallo Steffen,

einfacher ist es Du machst die Änderungen rückgängig (Folgefunktionen) und fragst Dein Listenfeld mit:

Me.Liste0.Column(1)

ab. VBA fängt bei 0 an zu zählen. 1. Spalte = Column(0), 2. Spalte = Column(1), usw.

hoffe das hilft

SteffenF
02.10.2002, 17:50
Villeicht könnt ihr mir so besser weiterhelfen.

Also ich habe eine Tabelle mit 2 Spalten, in der einen steht der index und in der anderen Text.

Bisher habe die Bezugszeile auf den index bezogen und damit die Werte in der Tabelle gefunden und gelöscht, nur dann hatte ich das Problem, dass ich für's weiter arbeiten auch den 2ten wert, also den text aus der zweiten spalte benötige.

Nouba
02.10.2002, 17:59
Hallo Steffen,

mach das genauso, wie snow es beschrieb. Das Resultat ist dann der Inhalt der Spalte Nummer 2.

SteffenF
02.10.2002, 18:02
Wunderbar,

Danke Euch Drei'en ihr wart mir eine große Hilfe!
Steffen