Gemeinsam zu mehr Effizienz in der Anwendungserstellung
K (→Datentyp: Zahlen (Integer, Double, ...)) |
K |
||
Zeile 24: | Zeile 24: | ||
Anm.: Die gleichen Regeln gelten natürlich auch bei Bedingungen mit Like, >=, <= usw. | Anm.: Die gleichen Regeln gelten natürlich auch bei Bedingungen mit Like, >=, <= usw. | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
===Datentyp: Zahlen (Integer, Double, ...)=== | ===Datentyp: Zahlen (Integer, Double, ...)=== | ||
Zeile 56: | Zeile 40: | ||
====Einsatz von Hilfsprozeduren und Klassen aus der CodeLib==== | ====Einsatz von Hilfsprozeduren und Klassen aus der CodeLib==== | ||
- | + | ||
+ | ===== Textfeld ===== | ||
+ | Hilfsfunktion für Umwandlung in Text aus [http://source.access-codelib.net/filedetails.php?repname=CodeLib&path=%2Ftrunk%2Fdata%2FSqlTools.bas SqlTools]: | ||
+ | <source> | ||
+ | FilterString = "Textfeld = " & TextToSqlText(FilterWertVariable) | ||
+ | </source> | ||
<source> | <source> | ||
FilterString = "Zahlenfeld = " & NumberToSqlText(FilterWertVariable) | FilterString = "Zahlenfeld = " & NumberToSqlText(FilterWertVariable) | ||
</source> | </source> | ||
+ | |||
Verwendung von [http://source.access-codelib.net/filedetails.php?repname=CodeLib&path=%2Fbranches%2Fdraft%2Fdata%2FFilterStringBuilder.cls FilterStringBuilder] | Verwendung von [http://source.access-codelib.net/filedetails.php?repname=CodeLib&path=%2Fbranches%2Fdraft%2Fdata%2FFilterStringBuilder.cls FilterStringBuilder] | ||
+ | <source> | ||
+ | With NewFilterStringBuilder | ||
+ | |||
+ | .Add "Textfeld", SQL_Text, SQL_Equal, FilterWertVariable | ||
+ | FilterString = .ToString | ||
+ | |||
+ | End With | ||
+ | </source> | ||
<source> | <source> | ||
With NewFilterStringBuilder | With NewFilterStringBuilder |
Wenn ein Filterausdruck als String zusammengesetzt wird, müssen die Filterwerte SQL-konform in Text konvertiert werden.
Inhaltsverzeichnis |
Der Text-Filterwert muss mit ' umschlossen sein. Bei Jet/ACE ist z.B. auch " möglich.
Filterwert: abc
... Textfeld = 'abc'
Dabei ist zu beachten, dass ' im Filterwert im obigen Fall verdoppelt werden müssen, da sonst der Text zu früh als beendet markiert wird.
Filterwert: a'b
... Textfeld = 'a''c'
=> Filterwert ist in Variable gespeichert:
FilterString = "Textfeld = '" & Replace(FilterWertVariable, "'", "''") & "'"
Anm.: Die gleichen Regeln gelten natürlich auch bei Bedingungen mit Like, >=, <= usw.
Zahlen sind im amerikanischen Zahlenformat darzustellen (Punkt statt Komma).
Filterwert: 123,45
... Textfeld = 123.45
=> Filterwert ist in Variable gespeichert:
FilterString = "Zahlenfeld = " & Str(FilterWertVariable)
Hilfsfunktion für Umwandlung in Text aus SqlTools:
FilterString = "Textfeld = " & TextToSqlText(FilterWertVariable)
FilterString = "Zahlenfeld = " & NumberToSqlText(FilterWertVariable)
Verwendung von FilterStringBuilder
With NewFilterStringBuilder .Add "Textfeld", SQL_Text, SQL_Equal, FilterWertVariable FilterString = .ToString End With
With NewFilterStringBuilder .Add "Zahlenfeld", SQL_Numeric, SQL_Equal, FilterWertVariable FilterString = .ToString End With