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:57:28]
yaslaw [Null Behandlung]
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 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.1490615848.txt.gz · Last modified: 27.03.2017 13:57:28 by yaslaw