1

次の VBA コードで構文エラーが発生しています。誰かがエラーの原因を突き止めるのを手伝ってもらえますか?

Private Sub Command11_Click()
    Dim EndingDate As Date
    'Getting ending date from Label named endDate
    EndingDate = endDate
    StartingDateTxt = DateSerial(Year(EndingDate), Month(EndingDate) - 15, Day(EndingDate))

    Dim customerRecords As New ADODB.Recordset
    customerRecords.Open "SELECT COUNT(*) AS N FROM (SELECT   DISTINCT E.Date,"&_
                        "E.[Inv Num],   E.CusName, E.[Name Street1], E.[Name Street2], "&_
                        "E.[Name City], E.[Name State], E.[Name Zip], E.[Account #], E.Amount FROM TempFromExcel "&_
                        "AS E  INNER JOIN TempFromExcel AS X ON E.CusName = X.CusName "&_
                        "WHERE (((DateDiff("d",X.Date,E.Date))>=30))  AND E.Date >= '" & StartingDateTxt & "' and"&_
                        "E.Date <= '" & endDate & "') AS T ;", _
                 CodeProject.Connection , _
                 adOpenStatic, _
                 adLockOptimistic, _
                 adCmdText
    MsgBox customerRecords("N")

End Sub

私のクエリは両方の日付を取得し、2 つの日付の間にある結果を見つけています。

その部分だけ欠けているのではないかと思います。クエリを明示的にチェックしたので、残りは問題ないようで、正常に実行されます。それで、これは正しいですか?

E.Date >= '" & StartingDateTxt & "' and E.Date <= '" & endDate & "'

これは回答で修正されましたが、Select ステートメントの最初の行でまだ構文エラーが発生しています。何か不足していますか?

4

2 に答える 2

1

Microsoft Access SQL クエリでは、Date 値を にカプセル化する必要があり##ます#06/01/2015#。あなたのケースに関連して、次のようになります。

E.Date >= #" & StartingDateTxt & "# AND E.Date <=#" & endDate & "#"

これが役立つことを願っています。

于 2015-06-01T20:04:30.017 に答える
0

これらの行を変更してみてください:

"WHERE (DateDiff('d', X.Date, E.Date) >= 30 AND E.Date >= #" & Format(StartingDateTxt, "yyyy\/mm\/dd") & "# and " & _
"E.Date <= #" & Format(endDate, "yyyy\/mm\/dd") & "#) AS T ;", _
于 2015-06-01T20:47:54.080 に答える