Access VBA中的strSQL不会执行

我在Access VBA中有以下代码:

Sub SampleReadCurve() Dim rs As Recordset Dim iRow As Long, iField As Long Dim strSQL As String Dim CurveID As Long Dim MarkRunID As Long Dim MaxOfMarkAsofDate As Date CurveID = 15 MaxOfMarkAsofDate = #7/31/2015# strSQL = "SELECT * FROM VolatilityOutput WHERE CurveID=" & CurveID & " AND MaxOfMarkAsofDate=" & MaxOfMarkAsofDate & " ORDER BY MaxOfMarkasOfDate, MaturityDate" Debug.Print strSQL Set rs = CurrentDb.OpenRecordset(strSQL, Type:=dbOpenDynaset, Options:=dbSeeChanges) If rs.RecordCount <> 0 Then rs.MoveFirst Debug.Print vbCrLf Debug.Print "First", rs.Fields("ZeroCurveID"), rs.Fields("MaturityDate"), rs.Fields("ZeroRate"), rs.Fields("DiscountFactor") rs.MoveLast Debug.Print "Last", rs.Fields("ZeroCurveID"), rs.Fields("MaturityDate"), rs.Fields("ZeroRate"), rs.Fields("DiscountFactor") Debug.Print "There are " & rs.RecordCount & " records and " & rs.Fields.Count & " fields." Dim BucketTermAmt As Long Dim BucketTermUnit As String Dim BucketDate As Date Dim MarkAsOfDate As Date Dim InterpRate As Double Dim I As Integer BucketTermAmt = 3 BucketTermUnit = "m" BucketDate = DateAdd(BucketTermUnit, BucketTermAmt, MaxOfMarkAsofDate) InterpRate = CurveInterpolateRecordset(rs, BucketDate) Debug.Print BucketDate, InterpRate End If End Sub 

最初,我在strSQL语句中只有一个WHERE子句。 由于添加第二个条件(MaxOfMarkAsofDate =#7/31/2015#),代码不再执行。 据我可以告诉它应该工作。 我究竟做错了什么?

尝试这个:

 strSQL = "SELECT * FROM VolatilityOutput WHERE CurveID=" & CurveID & " AND MaxOfMarkAsofDate=#" & MaxOfMarkAsofDate & "# ORDER BY MaxOfMarkasOfDate, MaturityDate" 

(所以在#date之前和之后)