Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ACCESS DATUM MIT VBA UND SQL BEFEHL ABFRAGEN UND

Forumthread: ACCESS DATUM MIT VBA UND SQL BEFEHL ABFRAGEN UND

ACCESS DATUM MIT VBA UND SQL BEFEHL ABFRAGEN UND
28.11.2023 19:35:45
Frank
Moin an alle VBA Experten,

ich speichere Daten über eine UserForm in einer ACCESS Datenbank ab.
Das funktioniert auch einwandfrei.
Ich kann die Daten auch mit verschiedenen UserFormen wieder abrufen und in meine Excel Tabellen eintragen.
Auch mit verschiedenen Kriterien bei der SQL Syntax (Siehe VBA Code)
Aber sobald ich eine Abfrage für ein Datum machen möchte "Syntaxfehler" (Siehe Anlage)

Ich habe schon lange im Netz nach einer Lösung gesucht, etliche Sachen ausprobiert, aber leider nichts effektives gefunden.
Ich bin nicht so der VBA/SQL Experte, versuche aber immer laufend dazuzulernen und vielleicht habt Ihr ja ne Lösung.

Würde mich sehr freuen.

Liebe Grüße

Frank

PS.: Als Anlage die Excel Datei.
https://www.herber.de/bbs/user/164638.xlsm

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ACCESS DATUM MIT VBA UND SQL BEFEHL ABFRAGEN UND
29.11.2023 08:32:16
MCO
Moin!

Ich bin auch kein König in SQL-Abfragen, aber geholfen hat oft schon, die Abfrage in HEIDISQL zu testen und zu konfigurieren. (Freeware)
https://www.heidisql.com/download.php

Meine Zeile um ein Datum abzufragen, bei gleichem Format wie bei dir, sieht so aus:
"ltdate >= '" & Date_Begr & "' AND " &

Beachte die Hochkommata vor und nach Date_Begr.

für eine Abfrage sähe es dann so aus
"Messraum >= '" & Datum1 & "' AND Messraum = '" & Datum2 & "' AND " &

Gruß, MCO
Anzeige
AW: ACCESS DATUM MIT VBA UND SQL BEFEHL ABFRAGEN UND
29.11.2023 14:17:43
Frank
Moin,

vielen Dank für Deine Antwort.
Ich werde mich mit Heidi demnächst mal beschäftigen.
Scheint sinnvoll zu sein wenn man keine Ahnung von SQL hat.
Danke für den Tipp

Gruss

Frank
AW: ACCESS DATUM MIT VBA UND SQL BEFEHL ABFRAGEN UND
29.11.2023 09:41:45
Herbert Grom
Hallo Frank,

hast du schon mal getestet, deine Datenbank gleich in Excel zu bauen?

Servus
Anzeige
AW: ACCESS DATUM MIT VBA UND SQL BEFEHL ABFRAGEN UND
29.11.2023 14:24:43
Frank
Hallo Herbert,

das habe ich bereits vorher gemacht.
Eigentlich wollte ich meine Daten alle in ACCESS speichern und EXCEL nur noch als FrontEnd nutzen ohne gespeicherte Daten.
Klappt ja eigentlich auch bis auf die Abfragen einer Datumsspalte in ACCESS.
Daten anlegen über Excel in ACCESS auch kein Problem.
Werde, dann halt mit ein paar Filter arbeiten, bis ich (Irgendwann mal :-) )eine Lösung für die Datumsspalten gefunden habe.

Gruss

Frank
Anzeige
;
Anzeige

Infobox / Tutorial

Abfragen von Datum in Access mit VBA und SQL


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Beginne mit der Erstellung einer UserForm in Excel, um Daten in die Access-Datenbank einzugeben.

  2. Verbindung zur Access-Datenbank herstellen: Verwende den folgenden VBA-Code, um eine Verbindung zur Access-Datenbank herzustellen:

    Dim conn As Object
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Pfad\Zu\DeinerDatenbank.accdb;"
  3. SQL-Abfrage erstellen: Formuliere die SQL-Abfrage für das Datum. Stelle sicher, dass Du Hochkommata um den Datumswert setzt:

    Dim sql As String
    sql = "SELECT * FROM DeineTabelle WHERE DeinDatumFeld >= #" & Format(Date_Begr, "yyyy-mm-dd") & "#"
  4. Abfrage ausführen: Nutze den folgenden Code, um die SQL-Abfrage auszuführen:

    Dim rs As Object
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sql, conn
  5. Daten verarbeiten: Verarbeite die zurückgegebenen Daten, um sie in Excel anzuzeigen oder weiterzuverarbeiten.


Häufige Fehler und Lösungen

  • Syntaxfehler bei Datumsabfragen: Achte darauf, dass Du die Datumswerte korrekt in Hochkommata setzt. SQL erwartet Datumsangaben in diesem Format: #MM/DD/YYYY#.

  • Fehler in der Verbindung: Überprüfe den Pfad zur Access-Datenbank und stelle sicher, dass die Datei existiert.

  • Leere Ergebnisse: Wenn Deine Abfrage keine Ergebnisse zurückgibt, stelle sicher, dass die Datumswerte tatsächlich in der Datenbank vorhanden sind und das Format übereinstimmt.


Alternative Methoden

Eine alternative Methode zur Abfrage von Daten in Access könnte die Verwendung von HeidiSQL sein, um Deine SQL-Abfragen zu testen und zu optimieren. Diese Software ermöglicht es Dir, SQL-Befehle einfach zu formulieren und zu überprüfen, bevor Du sie in VBA implementierst.


Praktische Beispiele

Ein praktisches Beispiel für eine Access-Abfrage könnte so aussehen:

Dim sql As String
sql = "SELECT * FROM Bestellungen WHERE Bestelldatum >= #" & Format(Datum1, "yyyy-mm-dd") & "# AND Bestelldatum <= #" & Format(Datum2, "yyyy-mm-dd") & "#"

In diesem Beispiel werden Bestellungen abgerufen, die zwischen zwei Datumswerten liegen. Achte darauf, die Datumsfelder in Deiner Access-Datenbank entsprechend zu benennen.


Tipps für Profis

  • Verwende Parameterabfragen: Um SQL-Injection zu vermeiden und die Sicherheit zu erhöhen, ziehe in Betracht, Parameterabfragen zu verwenden.

  • Debugging: Nutze die Debugging-Tools in VBA, um Deine SQL-Abfragen zu testen. Prüfe die generierten SQL-Strings im Direktfenster.

  • Daten validieren: Stelle sicher, dass die Daten, die Du abfragst, im richtigen Format vorliegen. Dies ist besonders wichtig bei der Arbeit mit Datumsspalten.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass meine Access-Datenbank korrekt verbunden ist?
Überprüfe den Verbindungsstring und den Pfad zur Datenbank. Teste die Verbindung in einem einfachen Skript.

2. Warum erhalte ich einen Syntaxfehler bei der SQL-Abfrage?
Achte darauf, dass die SQL-Syntax korrekt ist und die Datumswerte in Hochkommata gesetzt sind. Beispiel: #MM/DD/YYYY#.

3. Gibt es eine Möglichkeit, Datumsspalten in einer Abfrage zu filtern?
Ja, Du kannst Bedingungen wie WHERE DeinDatumFeld >= #Datum# verwenden, um Datumsspalten abzufragen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige