Hallo!
AddGroup ist zum Verschachteln von And/Or-Gruppen.
Beispielsweise:
- Code: Alles auswählen
.. where FeldABC = 5 AND (FeldXYZ = 1 or Feld123 = 2)
Prinzip mit FilterStringBuilder (ist bei FilterControlManager aber ähnlich)
- Code: Alles auswählen
With New FilterStringBuilder
.Add "FeldABC", SQL_Numeric, SQL_Equal, 5
with .AddGroup(SQL_OR)
.Add "FeldXYZ", SQL_Numeric, SQL_Equal, 1
.Add "Feld123", SQL_Numeric, SQL_Equal, 2
End With
Debug.Print .ToString
End With
Gibt es die Möglichkeit, mehrere Suchbegriffe in einem Textfeld flexibel per AND/OR zu verknüpfen?
Wenn du in ein Textfeld mehrere Werte eingeben willst und dann getrennt nach diesen Wörtern filtern willst, kannst du
- Code: Alles auswählen
.Add "Datenfeld", SQL_Text, SQL_Like + SQL_SplitValueToArray, Me.DeineTextbox
ausprobieren.
Damit wird ein Or-Filtertext zusammengestellt. Eine Und-Verknüpfung der Werte ist nicht implementiert. Das müsstest dann als "AdditionalFilter" selbst ergänzen oder das Framework mit dieser Funkionalität erweitern.
Auf jeden Fall wäre es schön, wenn man über den Wizard die wahlweise AND/OR-Verknüpfung steuern könnte und Multicontrols und Gruppen anlegen könnte.
Da bin ich mir nicht so sicher, ob das für den Wizard gut ist, da damit die Konfiguration komplexer wird. Ich bin da eher der Meinung, wenn jemand mit Or/And-Gruppen einen SQL-Text erzeugen will, dann kann der auch so gu programmieren, dass er die Zeilen im Code selbst anpasst.
Anm.: ich verwende z. B. den Wizard nur zum schnellen Einfügen des Codes und der Datenfelder in die Filterprozeduren. Den Rest programmiere ich dann direkt in VBA.
Wenn es dir gelingt, den Wizard zu zu gestalten, dass das Verwenden von Gruppen intuitiv bedienbar ist, bin ich aber gerne dazu bereit, dass wir das gemeinsam implementieren.
mfg
Josef