0
私は3つの基準に基づいていくつかのフィールドのいくつかを返すsqlクエリを持っています。sqlクエリの結果を変数に格納するvba
- LOCフィールド列「Alipore」
- 日フォームにテキストボックスから値を取得し、変数SDATEより大きいとに等しいました。
- 日付は、フォーム上のテキストボックスから値を取得する変数edateより小さいか等しいです。
「2つのパラメータ2」というエラーが表示されます。
Sub Test()
Dim rs As DAO.Recordset
Dim sqlMax As String
Dim result As Integer
Dim startd, endd As String
startd = Me.txtsdate.Value
endd = Me.txtedate.Value
sqlMax = "SELECT Sum(Salesdata.FOOD) AS SumOfFOOD, Sum(Salesdata.LIQUORS) AS SumOfLIQUORS, Sum(Salesdata.SMARTPORTION) AS SumOfSMARTPORTION, Sum(Salesdata.[SP TAKEAWAY]) AS [SumOfSP TAKEAWAY]," _
& "Sum(Salesdata.TAKEAWAY) AS SumOfTAKEAWAY, Sum(Salesdata.TAX_KKCESS02) AS SumOfTAX_KKCESS02, Sum(Salesdata.TAX_SBC020) AS SumOfTAX_SBC020, Sum(Salesdata.TAX_SERVICECHARGE) AS SumOfTAX_SERVICECHARGE," _
& "Sum(Salesdata.TAX_VAT145) AS SumOfTAX_VAT145, Sum(Salesdata.AMEX) AS SumOfAMEX, Sum(Salesdata.CASH) AS SumOfCASH, Sum(Salesdata.MASTERCARD) AS SumOfMASTERCARD, Sum(Salesdata.VISA) AS SumOfVISA, Sum(Salesdata.OTHERS) AS SumOfOTHERS," _
& "Sum(Salesdata.Vcloud) AS SumOfVcloud, Sum(Salesdata.MANAGERAC) AS SumOfMANAGERAC FROM Salesdata" _
& "WHERE (((Salesdata.Loc) = 'Alipore'))" _
& "HAVING (((Salesdata.DATE)>=" & startd & " And (Salesdata.DATE)<=" & endd & "));"
セットrs = CurrentDb.OpenRecordset(sqlMax、dbOpenDynaset)
Set rs = CurrentDb.OpenRecordset(sqlMax)
result = rs.Fields(0)
MsgBox result
Set rs = Nothing
rs.Close
End Sub
エラーはどの行で発生しますか? 'startD'を' Variant'にしようとしましたか?また、いくつかのSQLバリエーションでは、日付に '#'を付ける必要があります。例えば。 #1/1/2017#そうかもしれない –
あなたの返事をありがとう。 – Deb
vba err#3141から実行するとエラーが発生しますが、クエリとして正常に実行されます。 – Deb