ich möchte in der Datenbank erfassung in der Tablle auftag und dort in der Spalte Rechnungsnummer (Format TT.MM.JJJJ) nach allen Daten des Monat Januar (01) und dem Jahr 2024 suchen.
Und alle Fundstelle in die Tabelle Test.xlsx in dem Tabelleblatt 01 in die Spalte A schreiben.
Mit dem Skript werden Daten in die Tabelle geschrieben .. aber das sind Zahlen und haben nichts mit dem Datum zu tun.
Hat jemand eine Idee wo der Fehler ist?
Sub DatenAusMySQLAbfragen()
' Verweisbibliotheken: Microsoft ActiveX Data Objects x.x Library
uDB = "erfassung"
uIP = "192.168.178.23"
uUser = "user"
uPW = "pass"
' Verbindung zur MySQL-Datenbank herstellen
Dim conn As Object
Set conn = CreateObject("ADODB.Connection")
' Verbindungsinformationen anpassen
Dim connectionString As String
connectionString = "DRIVER={MySQL ODBC 8.0 Unicode Driver};" & "SERVER=" & uIP & "; DATABASE=" & uDB & "; UID=" & uUser & "; PWD=" & uPW & "; OPTION=3"
conn.Open connectionString
' SQL-Abfrage vorbereiten
Dim strSQL As String
strSQL = "SELECT * FROM auftrag WHERE MONTH(Rechnungsdatum) = 01 AND YEAR(Rechnungsdatum) = 2024;"
' Daten abrufen
Dim rs As Object
Set rs = CreateObject("ADODB.Recordset")
rs.Open strSQL, conn
' Excel-Verbindung herstellen
Dim excelApp As Object
Set excelApp = CreateObject("Excel.Application")
' Arbeitsmappe öffnen
Dim wb As Object
'Set wb = excelApp.Workbooks.Open("D:\Auftrag\Test.xlsx")
Set wb = Workbooks("Test.xlsx")
' Arbeitsblatt auswählen
Dim ws As Object
Set ws = wb.Worksheets("01") ' Namen des Arbeitsblatts anpassen
' Spalte A löschen, bevor neue Daten eingefügt werden
ws.Columns("A:A").Clear
' Daten in Excel einfügen
ws.Range("A1").CopyFromRecordset rs
' Verbindungen schließen
rs.Close
conn.Close
' Excel-Anwendung schließen
excelApp.Quit
' Freigeben von Ressourcen
Set rs = Nothing
Set conn = Nothing
Set excelApp = Nothing
Set wb = Nothing
Set ws = Nothing
End Sub