2016-08-04 26 views
0

Ich habe eine Datenbank im Zugriff, wo jedes Datum ein Datum und eine Uhrzeit in zwei verschiedenen Spalten hat.Abfrage von Daten zwischen einem bestimmten Datum und Uhrzeit in VBA

Ich brauche eine Abfrage in Excel mit VBA laufen, die mir von Daten zwischen zwei bestimmten Tagen und Zeiten holen würden (zB: 2016.01.05 13.15 und 10.11 2016.03.05)

Meine Frage lautet wie folgt:

SQL = "SELECT * FROM " & database & " WHERE symbol='" & companyName & _ 
     "' AND AdmitDate BETWEEN " & (fromDate + fromTime) & " AND " & (toDate + toTime) & "" 

Allerdings gibt es mir einen Syntaxfehler, die sagen:

'Fehlender Operator in Abfrageausdruck'

Ich bin nicht in der Lage herauszufinden, wo ich falsch gelaufen bin.

Bitte helfen!

+0

Wenn das Datum und die Uhrzeit in verschiedene Spalten in Ihrer Datenbank aufgeteilt werden, sollten Sie zwei separate "BETWEEN" -Anweisungen ausführen, z. '" AdmitDate BETWEEN "& FromDate &" AND "& toDate &" UND AdmitTime BETWEEN "& FromTime &" AND "& toTime' - Wie werden Ihre Daten in der Datenbank gespeichert? Welches Format? – Jordan

+0

Hallo! Ich denke, das würde nicht funktionieren. Zum Beispiel, wenn ich Daten vom 01.01.2016 10:00 bis 01.03.2016 13:00 benötige. Das Ausführen von zwei separaten Anweisungen würde mir nur Daten von 10:00 bis 13:00 für die gegebenen Tage geben! Es würde nicht Daten abrufen, die nicht zwischen 10:00 und 13:00 – Shreyans

Antwort

1

Sie benötigen die richtigen Zeichenfolgenausdrücke für die Datums-/Uhrzeitwerte. Format kann diese erstellen:

SQL = "SELECT * FROM " & database & " WHERE symbol='" & companyName & "' AND AdmitDate BETWEEN #" & Format(fromDate + fromTime, "yyyy\/mm\/dd hh\:nn\:ss") & "# AND #" & Format(toDate + toTime, "yyyy\/mm\/dd hh\:nn\:ss") & "#" 
+0

ist. Egal, meine Bearbeitung vorschlagen, dass ich etwas lernen, Formatierung Zeit zu tun. Danke –

+0

@ JohnWFowler: Kein Problem. – Gustav

+1

Funktioniert perfekt! Vielen Dank – Shreyans