Hallo Leute,
ich habe heute mal wieder ein Problem mit SQLstrings. Ich möchte gerne über eine neu erstellte Abfrage Daten nach Excel exportieren. Folgendes funktioniert ohne Probleme:
Private Sub Befehl0_Click()
Dim qry_export As DAO.QueryDef
Dim start As String
Dim strSQL As String
strSQL = "SELECT * FROM qryRechnungen"
start = FnsSeparatedPath$(CurrentDb.Name) & "testen.xlsx"
Set qry_export = CurrentDb.CreateQueryDef("Test", strSQL)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Test", start, True
DoCmd.DeleteObject acQuery, "Test"
qry_export.Close
Set qry_export = Nothing
End Sub
Nun sollen nicht alle Datensätze aus qryRechnungen genommen werden, sondern nur die, bei denen das Rechnungsdatum z.B. gleich 03.02.2013 ist.
Deshalb habe ich folgendes ergänzt:
Private Sub Befehl0_Click()
Dim qry_export As DAO.QueryDef
Dim start As String
Dim strSQL As String
Dim invoicedate As Date
Dim strinvoicedate As String
invoicedate = "03.02.2013"
strinvoicedate = "#" & Month(invoicedate) & "/" & Day(invoicedate) & "/" & year(invoicedate) & "#"
strSQL = "SELECT * FROM qryRechnungen WHERE Rechnungsdatum='" & strinvoicedate & "'"
start = FnsSeparatedPath$(CurrentDb.Name) & "testen.xlsx"
Set qry_export = CurrentDb.CreateQueryDef("Test", strSQL)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Test", start, True
DoCmd.DeleteObject acQuery, "Test"
qry_export.Close
Set qry_export = Nothing
End Sub
Der Fehler muss in der WHERE-Klausel liegen. Was mache ich falsch??
Ich erhalte beim ausführen den Laufzeitfehler 3464 - Datentypen in Kriterienausdruck unverträglich. Der Debugger markiert die Zeile mit DoCmd.TransferSpreadsheet.........
Wenn ich versuche, die bereits erstellte aber noch nicht wieder gelöschte Abfrage Test zu öffnen, geht das nicht. Gleicher Fehler. Also muss das an SQL liegen.
Ich hoffe mal wieder auf euch.....
Hallo,
kein Wunder, wenn Du die Datentypen so durcheinanderwürfelst...
Private Sub Befehl0_Click()
Dim qry_export As DAO.QueryDef
Dim start As String
Dim strSQL As String
Dim invoicedate As Date
Dim strinvoicedate As String
invoicedate = #02/03/2013#
strinvoicedate = Format (invoicedate ,"\#yyyy-mm-dd\#")
strSQL = "SELECT * FROM qryRechnungen WHERE Rechnungsdatum=" & strinvoicedate
start = FnsSeparatedPath$(CurrentDb.Name) & "testen.xlsx" 'start = Currentproject.Path & "\testen.xlsx"
Set qry_export = CurrentDb.CreateQueryDef("Test", strSQL)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Test", start, True
DoCmd.DeleteObject acQuery, "Test"
qry_export.Close
Set qry_export = Nothing
End Sub
ohja, vielen Dank" das wars... irgendwie habe ich da Chaos gehabt...
Bin da noch zu unerfahren...