A2003: Daten filtern mit Listboxen

10/08/2008 - 12:24 von Peter Wenzel | Report spam
Hallo,
ich bràuchte mal eure Meinung und/oder Hilfe.

Ich möchte gerne in einem Formular Daten filtern, durch Auswahl in Listboxen.
Beispiel: In der ersten Box stehen alle Bundeslànder. Wàhle ich einen Eintrag aus,
so erscheinen in der nàchsten Box alle Stàdte des ausgewàhlten Landes. Wàhle ich eine Stadt aus,
so erscheinen in der dritten Box alle Strassen der Stadt usw. (Es ist nur ein Beispiel!)
Datenherkunft ist eine Abfrage in der alles steht. Ich habe diese Aufgabe nun so gelöst,
dass ich in den Listboxen beim Ereignis "Beim Klicken" für die nàchste Listbox mit
"Me!lstKennung.RowSource =" einen SQL String zuweise der den Inhalt der Box festlegt.
Funktioniert auch soweit...
Hat aber kleine Schönheitsfehler:

1.
Da für jede Listbox ein eigenes Makro existiert, ich aber die Information der Auswahl der ersten Box
auch in der dritten benötige, war es erforderlich globale Variablen zu verwenden.
Nun bleibt der Inhalt aber auch erhalten wenn ich ihn gar nicht mehr benötige.
Ich habe versucht mit

Set ctrl = Me!lstKennung
For Each vari In ctrl.ItemsSelected
ctrl.Selected(vari) = False
Next vari

und dem Löschen des dazugehörigen Variableninhalts eine Amnesie herbeizuführen, jedoch ohne Erfolg.
Eine vorher getàtigte Auswahl bleibt erhalten.

2.
Es ist keine Mehrfachauswahl möglich. Würde ich mir aber schon wünschen.

Fragen: Kann man solch eine Aufgabe auch anders lösen? Wie làsst sich eine Mehrfachauswahl realisieren?

Ach ja, noch eine Info: Das Ziel ist es, aus der getàtigten Auswahl einen Bericht zu erstellen. Hierfür erzeuge ich
aus der Auswahl eine Abfrage, die dann als Datengrundlage des Berichtes dient. Funzt auch!


Danke schon mal für's helfen

Gruß
Peter


Bitte alle Antworten hier in die Newsgroup.
Mails nur nach Rücksprache zusenden.
 

Lesen sie die antworten

#1 Karl Donaubauer
10/08/2008 - 14:49 | Warnen spam
Peter Wenzel wrote:
Ich möchte gerne in einem Formular Daten filtern, durch Auswahl in
Listboxen. Beispiel: In der ersten Box stehen alle Bundeslànder. Wàhle ich
einen
Eintrag aus, so erscheinen in der nàchsten Box alle Stàdte des
ausgewàhlten Landes.
Wàhle ich eine Stadt aus, so erscheinen in der dritten Box alle Strassen
der Stadt usw. (Es ist nur
ein Beispiel!) Datenherkunft ist eine Abfrage in der alles steht. Ich habe
diese Aufgabe
nun so gelöst, dass ich in den Listboxen beim Ereignis "Beim Klicken" für
die nàchste
Listbox mit "Me!lstKennung.RowSource =" einen SQL String zuweise
der den Inhalt der Box festlegt. Funktioniert auch soweit...
Hat aber kleine Schönheitsfehler:

1.
Da für jede Listbox ein eigenes Makro existiert, ich aber die Information
der Auswahl der ersten Box auch in der dritten benötige, war es
erforderlich globale Variablen zu
verwenden.



Diesen Punkt verstehe ich nicht.
Wozu brauchst du hier Variablen und wo und wie setzt du sie ein?

Nun bleibt der Inhalt aber auch erhalten wenn ich ihn gar nicht mehr
benötige. Ich habe versucht mit

Set ctrl = Me!lstKennung
For Each vari In ctrl.ItemsSelected
ctrl.Selected(vari) = False
Next vari

und dem Löschen des dazugehörigen Variableninhalts eine Amnesie
herbeizuführen, jedoch ohne Erfolg. Eine vorher getàtigte Auswahl bleibt
erhalten.



Worauf bezieht sich "Auswahl bleibt erhalten"?
Dein Codeschnippsel sieht ok aus, d.h. müsste die Eintràge abwàhlen.

2.
Es ist keine Mehrfachauswahl möglich. Würde ich mir aber schon wünschen.

Fragen: Kann man solch eine Aufgabe auch anders lösen? Wie làsst sich
eine Mehrfachauswahl realisieren? ...



Falls es darum geht, wie du mehrere ausgewàhlte Listeneintràge in
den SQL-String des untergeordneten Listenfeldes übernehmen kannst,
dann schau dir dieses Beispiel an:
http://groups.google.com/group/micr...86fddd3721

HTH
Karl
********* Ich beantworte keine Access-Fragen per Email. *********
Access-FAQ: http://www.donkarl.com, jetzt mit Anmeldung und Info
zur Access-Entwickler-Konferenz (AEK11), Oktober 2008, Nürnberg

Ähnliche fragen