User Tools

Site Tools


vba:cast:ctosqlstr

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:cast:ctosqlstr [27.03.2017 13:56:20]
yaslaw
vba:cast:ctosqlstr [12.02.2018 15:48:49] (current)
yaslaw [Beispiele]
Line 6: Line 6:
     fpath=/​vba/​cast     fpath=/​vba/​cast
 </​const>​ </​const>​
-====== [VBA] cStrF ======+====== [VBA] toSqlStr() ​======
 //Wandelt einen Wert in die SQL-Scrheibweise. Gut für Filter und Where-Bedinungen einer Abfrage// //Wandelt einen Wert in die SQL-Scrheibweise. Gut für Filter und Where-Bedinungen einer Abfrage//
 ==Version %%version%% %%vdate%%== ==Version %%version%% %%vdate%%==
Line 40: Line 40:
  
 ===== Beispiele ===== ===== Beispiele =====
-> Für die Ausgabe der Resultate verwendete ich teilweise die Funktion [[vba:​functions:​print_r:​]]. 
  
 ==== Einfache Bespiele ==== ==== Einfache Bespiele ====
Line 80: Line 79:
 Null ist immer wieder ien Spezialfall. Standardmässig wird Null in den Text Null gewandelt. Null ist immer wieder ien Spezialfall. Standardmässig wird Null in den Text Null gewandelt.
 Um den Unterschied zu zeigen verwende ich hier die Ausgabe über [[vba:​functions:​print_r:​]]. Um den Unterschied zu zeigen verwende ich hier die Ausgabe über [[vba:​functions:​print_r:​]].
-<code vb>'​ So sieht die Ausgabe von print_r ​fr Null aus+<code vb>'​ So sieht die Ausgabe von print_r ​für Null aus
 d Null d Null
 <​Null> ​ <​Null> ​
Line 105: Line 104:
 ? toSqlStr(dbNumeric,​ Null, sspNullToEmpty,​ 11) ? toSqlStr(dbNumeric,​ Null, sspNullToEmpty,​ 11)
 11</​code>​ 11</​code>​
 +
 +==== Boolean ====
 +Für Boolean wird cBool zum Konvertieren verwendet
 +<​code>​d toSqlStr(dbBoolean,​ 1=1)
 +<​String>​ '​TRUE'​
 +
 +d toSqlStr(dbBoolean,​ "​False"​)
 +<​String>​ '​FALSE'</​code>​
 +
 +==== Array ====
 +Bei einem Array wird das Format auf alle Elemente angewendet und das Result erscheint als List, die in einem SQL für IN() verwendet werden kann
 +<code vb>? toSqlStr(dbLong,​ array(13,​14,"​16"​))
 +13,14,16
 +
 +? toSqlStr(dbText,​ array("​a",​ "​b",​ "​c"​))
 +'​a','​b','​c'​
 +
 +? toSqlStr(dbDate,​ array(now, now+1))
 +#​03/​27/​2017#,#​03/​28/​2017#​
 +
 +? toSqlStr(dbLong,​ array(13,"​ABC","​16",​ NULL))
 +13,#​TypeMismatch,​16,​NULL</​code>​
  
 ==== Fehlerhandling ==== ==== Fehlerhandling ====
Line 121: Line 142:
 'Beim folgenden Aufruf wird die Verarbeitung angehalten und der es wird in den Debug-Mode gewechselt 'Beim folgenden Aufruf wird die Verarbeitung angehalten und der es wird in den Debug-Mode gewechselt
 ? toSqlStr(dbLong,​ "​abc",​ sspOnErrorAssert)</​code>​ ? toSqlStr(dbLong,​ "​abc",​ sspOnErrorAssert)</​code>​
 +
 +==== Beipiel in einem SQL-String in VBA ====
 +Und jetzt mal angewendet:
 +<code vb> ​   Dim sql As String
 +    Dim fromDate As Date, toDate As Date
 +    Dim flags() As Variant
 +    ​
 +    fromDate = Now - 10
 +    toDate = Now
 +    flags = Array("​a",​ "​u",​ "​k"​)
 +    ​
 +    sql = "​SELECT * FROM myTable WHERE " & _
 +        " flag in (" & toSqlStr(dbText,​ flags) & ") " & _
 +        "AND my_date BETWEEN " & toSqlStr(dbDate,​ fromDate) & " AND " & toSqlStr(dbDate,​ toDate)
 +    ​
 +    Debug.Print sql</​code>​
 +<code sql>​SELECT * FROM myTable WHERE  flag in ('​a','​u','​k'​) AND my_date BETWEEN #​03/​17/​2017#​ AND #​03/​27/​2017#</​code>​
  
 ===== Code ===== ===== Code =====
 <source '​%%fpath%%/​%%fname%%'​ vb> <source '​%%fpath%%/​%%fname%%'​ vb>
vba/cast/ctosqlstr.1490615780.txt.gz · Last modified: 27.03.2017 13:56:20 by yaslaw