PDA

Vollständige Version anzeigen : Syntaxfehler in From-Teil


TKN_Carsten
09.11.2005, 14:59
Hallo, ich habe folgenden Code:

Private Sub Aktualisieren_Click()
'On Error Resume Next
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'Dim testvar As Date
cn.Provider = "Microsoft Jet 4.0 OLE DB Provider"
cn.ConnectionString = "M:\Public\Access Auswertungen\Berichte2003\Bestellabwicklung\Bestellabwicklung.mdb"
cn.Open
testvar = Sheets("Tabelle2").Range("C1").Value
rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.Source = "SELECT Bestelldatum FROM Bestellungen where Bestelldatum = #" & testvar & "#"
rs.Open

End Sub

Nun bekomme ich folgenden Fehler:
Syntaxfehler in Datum in Abfrageausdruck 'Bestelldatum = #01.10.2004#'

Kann mir bitte jemand eine Lösung verraten?

jinx
09.11.2005, 17:52
<font size="2" face="Century Gothic">Moin, Carsten,

ich würde die englische / amerikanische Schreibweise (#11/9/2005#) oder die Verwendung von DateSerial vermuten...</font>

TKN_Carsten
10.11.2005, 07:48
Wie kann ich den Fehler denn beheben?

Die Daten, die aus der Access Datenbank gezogen werden sollen, haben dieses Format: 2005-05-28 00:00:00

Selbst wenn ich die Excelzelle so formatiere, kommt die Abfrage nicht zu stande.
Kann mir jemand sagen, wie ich den Fehler beheben kann?

Danke

TKN_Carsten
10.11.2005, 10:02
Private Sub Aktualisieren_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim dateStart As Date
Dim dateEnd As Date
With cn
.Provider = "Microsoft Jet 4.0 OLE DB Provider"
.ConnectionString = "M:\Public\Access Auswertungen\Berichte2003\Bestellabwicklung\Bestellabwicklung.mdb"
.Open
End With

dateStart = Sheets("Tabelle2").Range("C1").Value
dateEnd = Sheets("Tabelle2").Range("E1").Value


With rs
.ActiveConnection = cn
.CursorLocation = adUseClient
.Source = "SELECT Bestelldatum FROM Bestellungen where Bestelldatum >= #" & dateStart & "# AND Bestelldatum <= #" & dateEnd & "# "
'.Source = "SELECT Bestelldatum FROM Bestellungen where Bestelldatum >= #10/01/2004# AND Bestelldatum <=#09/30/2005#"
.Open
End With
ActiveWorkbook.Worksheets("Tabelle3").Cells(5, 3) = rs.RecordCount
rs.MoveFirst
iFill = 6
Do While Not rs.EOF
ActiveWorkbook.Worksheets("Tabelle3").Cells(iFill, 3) = rs.Fields(0)
rs.MoveNext
iFill = iFill + 1
Loop
rs.Close
End Sub

Wenn ich die Abfrage so angebe, wie in der auskommentierten Zeile, dass geht es.
Aber ich will ja, dass das Datum aus einer bestimmten Zelle gezogen wird.
Zwischendrin scheint irgendwie das Format auf den deutschen Standard gesetzt zu werden.