So funktioniert JustAnswer:
  • Fragen Sie einen Experten
    Tausende Experten in über 200 Kategorien.
  • Erhalten Sie eine professionelle Antwort
    Per E-Mail oder sofortiger Benachrichtigung, während Sie auf unserer Website warten.
    Stellen Sie ggf. weitere Anschlussfragen.
  • 100%ige Zufriedenheit garantiert
    Bewerten Sie die erhaltene Antwort.
Stellen Sie Ihre Frage an MKruse.
MKruse
MKruse, Dipl. Inform.
Kategorie: Programmierung
Zufriedene Kunden: 25
Erfahrung:  9 Jahre Erfahrung mit Java, VBA, Perl, C# und C++.
39215291
Geben Sie Ihre Frage in der Kategorie Programmierung hier ein
MKruse ist jetzt online.

Hallo! Nun m chte ich in den Code nicht nur eine Listbox

Kundenfrage

Hallo!

Nun möchte ich in den Code nicht nur eine Listbox und eine Optiongroup einbauen, sondern jeweils mehrere: ca. 3 Listboxen und 12 Optiongroups, um dann wieder zu filtern. Mit der Lösung aus der letzten Frage, müsste ich nach meinem Verständnis dann alle möglichen Kombinationen einzeln codieren: entsprechend 225 Varianten?!?
Gibt es hier eine schlankere Umsetzung?
oder wie würde die bestmögliche Lösung aussehen?

Dank und Gruss
CH
Gepostet: vor 6 Jahren.
Kategorie: Programmierung
Experte:  MKruse hat geantwortet vor 6 Jahren.
Hallo nochmal,

also ich empfehle jetzt den Einsatz einzelner Prozeduren. Für Listboxen gäbs auch die Möglichkeit eine Prozedur für alle zu schreiben. Bei Optiongroups müsste ich mir was überlegen. Ist es ihnen möglich mir ihr Projekt zukommen zu lassen? Z.B. als passwortgeschützte, gezippte Datei auf einer Webseite? Dann könnte ich mal etwas ausprobieren, was dann den Wartungsaufwand in Grenzen halten würde.
Wenn Wartung kein Thema ist, weil sich mit hoher Wahrscheinlichkeit nichts oder nur wenig verändert, dann können Sie folgendes machen (wahrscheinlich auch insgesamt besser, wie mir grade auffällt):

Für eine Listbox passen Sie den Code so an, dass strMarket (bzw. strListbox2) nach dem End If noch folgende Zeile erhält: strMarket = "[Market] " & strMarket
Der Code für die erste Listbox kann dann einfach kopiert werden. Für alle folgenden Felder müsste dann noch ein AND angefügt werden. Also: strListBox2 = " AND [ListBoxField2] " & strListBox2

Bei der OptionGroup müsste dann ein strOptGroup1 = "", falls keine Auswahl vorliegt, bzw strOptGroup = " AND [OptGroup1Field] " & strOptGroup, falls eine Auswahl vorliegt. Der Code für die OptionGroups müsste dann auch für jede kopiert werden.

Ganz am Schluss würde dann der condition-String zusammengebaut werden in der art:
strFilter=strListBox1 & strListBox2 & strListBox3 & strOptGroup1 .... & strOptGroup13

Der Nachteil für jede Optiongroup den Code zu kopieren liegt auf der Hand. Ändert sich etwas, so müssen mehrere Stellen angepasst werden. Daher wäre es besser Prozeduren zu verwenden, aber da müsste ich mir noch etwas überlegen, um die einzelnen Auswahlmöglichkeiten der OptionGroups auf ihre Datenbank-werte zu mappen. Das würde ich gerne erstmal ausprobieren.

Leider hätte ich dafür erst heute abend Zeit (oder morgen früh). Also wenn Sie eine gut wartbare Version bevorzugen, würde meine Antwort etwas dauern. Tut mir leid.

MfG
M Kruse
Kunde: hat geantwortet vor 6 Jahren.
Hallo again!

Vielen Dank für die Vorschläge! Werde Ihre obige Lösung probieren. Unabhängig davon könnte ich Ihnen das Projekt gerne zur Verfügung stellen. Da es sich noch im "Bastel" Zustand befindet, sind auch keine sensitiven Daten enthalten, aber genügend Daten zum Testen. Web-page habe ich leider keine, daher bliebe vermutlich nur email!?

Gruss und danke
CH
Experte:  MKruse hat geantwortet vor 6 Jahren.
Hallo,

ok. Meine Email lautet kruse(at)uni-bonn.de
Ich schaue dann, dass ich parallel zu ihnen so schnell wie möglich eine intelligente Lösung finde.

MfG
M Kruse