====== [VBA][SQL] Filterstrings ====== //Immer wieder sehe ich Fragen in Forum zu SQL-Statements oder Filterstrings die daran scheitern, das die Werte falsch übergeben werden// ===== Filterstring ===== Der Filterstring wird in Formularen und Reports verwendet. Er entspricht aber auch dem WHERE-Abschnitt eines SQL-Statements oder der Bedinung eines DCOUNT(), DLOOPUKP() etc. -- Datum muss entweder im US Format oder im ISO-Format sein -- US: #MM/DD/YYYY# [mein_datum_feld] = #06/12/2017# -- ISO: #YYYY-MM-DD# [mein_datum_feld] = #2017-06-12# -- Zeit: #NN:HH:SS# [mein_zeit_feld] = #12:45:00# -- Zeitstempel: #MM/DD/YYYY 12:45:00# [mein_timestpam_feld] = #06/12/2017 12:45:00# -- Zahlen: 0.0 [mein_long_feld] = 12345 [mein_double_feld] = 12345.67 -- Text 'Text', "text" [mein_text_feld] = 'abc' [mein_text_feld] = "abc" ===== Beispiele ===== Angewandt in VBA mit einer Variablen als wert. Hier eine kleine methode, welche die Umsetzungen zeigt Public Sub showroomFilterStrings() Dim strFilter As String Dim varValue As Variant 'Datum: #MM/DD/YYYY# varValue = Now strFilter = "[mein_datum_feld] = #" & format(varValue, "MM\/DD\/YYYY") & "#" Debug.Print strFilter 'Zeit: #NN:HH:SS# varValue = Now strFilter = "[mein_zeit_feld] = #" & format(varValue, "HH:NN:SS") & "#" Debug.Print strFilter 'Zeitstempel: #MM/DD/YYYY 12:45:00# varValue = Now strFilter = "[mein_timestpam_feld] = #" & format(varValue, "MM\/DD\/YYYY HH:NN:SS") & "#" Debug.Print strFilter 'Zahlen: 0.0 varValue = 12345 strFilter = "[mein_long_feld] = " & varValue Debug.Print strFilter varValue = 12345.34 strFilter = "[mein_double_feld] = " & varValue Debug.Print strFilter 'Text 'Text', "text" varValue = "abc" strFilter = "[mein_text_feld] = '" & varValue & "'" Debug.Print strFilter strFilter = "[mein_text_feld] = """ & varValue & """" Debug.Print strFilter End Sub -- Ausgabe im Direktfenster [mein_datum_feld] = #06/26/2017# [mein_zeit_feld] = #10:36:50# [mein_timestpam_feld] = #06/26/2017 10:36:50# [mein_long_feld] = 12345 [mein_double_feld] = 12345.34 [mein_text_feld] = 'abc' [mein_text_feld] = "abc"