New user
Beiträge: 4
| Ein Formular F_PW basiert auf einer Abfrage, welche Daten aus 9 Tabellen anzeigt. Ungefiltert sind dies knapp 10.000 Datensätze.
Mit Hilfe von 6 ungebundenen Feldern (3 Textfelder, 3 Kombinationsfelder) sollen Daten gefiltert werden.
Ich habe nun eine Abfrage erstellt, welche per Makro als Filter verwendet werden soll (zu Testzwecken erstmal auf ein Suchfeld begrenzt):
Sofern Filterkriterien ins Suchfeld [Suche_ST] eingetragen werden, klappt dies auch. Falls die ungebundenen Felder leer bleiben (sie wurden vorher per Makro auf die Grundstellung Leerstring "" zurückgestellt) sollen sie in der Filter-Abfrage nicht berücksichtigt werden.
Dabei verwende ich bei den Abfragekriterien eine WENN-Funktion:
Wenn(Länge([Formulare]![F_PW]![Suche_ST])>0;[Formulare]![F_PW]![Suche_ST];Wie "*")
Der Dann-Teil der WENN-Funktion funktioniert wie gewünscht. Wenn das Suchfeld [Suche_ST] jedoch leer bleibt, werden überhaupt keine Datensätze angezeigt (statt dass nicht gefiltert wird). Im Sonst-Teil habe ich auch schon den Eintrag NULL probiert, was aber auch nicht klappt.
Wer hat einen Tipp für mich? Da ich mit Programmierung nicht viel am Hut habe, wäre ich froh um Lösungsvorschläge nur mit Makros oder Formeleingaben im Abfrageentwurf.
P.S. Die Abfrage-Ausführung dauert so recht lange. Wie könnte ich die Performance verbessern? (Möglichst ohne VBA?) Ist es möglich per Makro je nach eingetragenen Suchkriterien in die 6 Felder einen SQL-String zu erzeugen, der dann vielleicht schneller ausgeführt wird?? (Ihr merkt, ich habe nicht soviel Ahnung .... )
Ralph
|