Filterung von VBA-Datenbank
18.07.2016 12:21:45
VBA-Datenbank
ich habe eine kleine Datenbank geschrieben in der verschiedene Technologien für eine Abwärmenutzung und Abwasseraufbereitung aufgelistet sind. Diese Technologien für die Abwärmenutzung sind z.B. mit Kriterien beschrieben wie Temperaturniveu, Trägermedium oder Abwärmeleistung und weiteren. Mit dem kleinen VBA-Programm das ich erstellt haben soll es einem Anwender ermöglicht werden diese Datenbank anhand der beschriebenen Kriterien zu filtern. Die Kriterien sind dabei sowohl in Textform (z.B. Trägermedium = gas) also auch in Zahlenform (z.B. Abwärmeleistung = 140MW) enthalten.
Das Problem, was ich aktuell habe liegt bei den Kriterien in Zahlenform (Temperaturniveau und Abwärmeleistung). Es gibt in der Datenbank auch Technologien die im Bereich von 0,01MW = 10KW oder 0,001MW = 1KW bis 140MW liegen. Wenn ich jetzt nach dem Wert 0,1 suche oder nach einer anderen Zahl wie 8 oder 90 passiert leider gar nichts. Das Gleiche gilt für den Bereich Temperaturniveau wenn ich hier nach Temperaturen von z.B. -100°C oder -50°C suche passiert ebenfalls nichts.
Das war erst einmal die Beschreibung der Ausgangslage, nun versuche ich noch das Problem genauer zu beschrieben.
Das Problem:
Um auf das Problem zu stoßen, öffnet man in dem Tabelleblatt "Filter" die Userform und klickt auf "weiter zu Phase 2" wenn man dort nun unter der Rubrik "Abwärmeleistung" z.B. eine der Zahlen "0,001, 1, 9, 140" eingibt und den Button "Filtern" anklickt, kommt nur die Fehlermeldung "No matching Data" und es passiert rein gar nichts. Fast genauso sieht es in der Rubrik "Temperaturniveu" aus, wenn man hier die Zahl "-100, -50" eingibt, erhält man die oben beschriebe Fehlermeldung, wenn man aber "10,20" eingibt und sucht funktioniert alles wunderbar, obwohl die gleichen Makros und Filter verwendet werden.
Das Problem liegt in der Userform für die Abwärme der Phase 2 [Bezeichnung: frmFilter1] ich möchte dies aber auch auf die Userform des Abwassers [Bezeichnung:frmFilterAbw1] übertragen können. Die verwendeten Filtermakros sind identisch und sind als "Filterme" im Modul1 (bzw. "FiltermeAb" im Modul2 für das Abwasser) beschrieben. Ich nehme an das entweder dort das Problem liegt oder im Quelltext für den Button zum filtern [Bezeichnung: cmdFilter_Click()] wo das vorher beschrieben Makro eingebunden ist. In dem Makro "Filterme" ist eine Toleranz eingebaut, damit der nächste Wert angezeigt wird, wenn der exakte nicht in der Datenbank enthalten ist, vielleicht hat das auch mit dem beschriebenen Problem zu tun.
Eigener Lösungs Ansatz:
Mit dem englischen Punkt bzw. Komma hatte ich auch schon rumprobiert da bin ich jedoch auch nicht weiter gekommen. Wenn in meiner Datenbank "0.1" steht und ich nach "0.1" in der Userform suche gibt es die gleiche Fehlermeldung wie oben beschrieben.
Ich hoffe, dass ich das Problem verständlich erklären konnte und mir von Euch, wer bei der Lösung helfen kann.
Vielen Dank im Voraus für Euer bemühen!
Hier ist noch mal der Link für die Datei:
https://www.herber.de/bbs/user/106971.zip
Mit freundlichen Grüßen
Ned Flanders