查询通过SQL在Excel VBA中的SQL访问,其中excel变量在查询的一部分中



我希望能够在一组数据中查找最小/第一个日期,然后在访问中运行查询,该查询将从当天开始删除某个表中的所有数据。

到目前为止,我所拥有的是:

Sub upload()
 Last = ActiveSheet.UsedRange.Rows.Count
 Dim LastOrderDate As Date
 Dim LastOrderDateYear As Integer
 Dim LastOrderDateMonth As Integer
 Dim LastOrderDateDay As Integer
 FirstOrderDate = Range("D2")
 FirstOrderDateYear = Year(FirstOrderDate)
 FirstOrderDateMonth = Month(FirstOrderDate)
 FirstOrderDateDay = Day(FirstOrderDate)
 'Import Data to Benji's Ecommerce Database
 ssheet = Application.ActiveWorkbook.FullName
 Set acApp = CreateObject("Access.Application")
     acApp.OpenCurrentDatabase ("X:ECommerce Database.accdb")
     acApp.Visible = True
     acApp.UserControl = True
     acApp.DoCmd.RunSQL "DELETE * FROM [OrdersDetailed] WHERE Day([OrderDate])=""&FirstOrderDateDay&"" And Month([OrderDate])=""&FirstOrderDateMonth&"" And Year([OrderDate])=""&FirstOrderDateYear&"""
    acApp.DoCmd.TransferSpreadsheet 0, 9, "OrdersDetailed", ssheet, True, "B1:V" & Last
    acApp.CloseCurrentDatabase
    acApp.Quit
Set acApp = Nothing
End Sub

,但它没有删除任何内容,它运行正常,但是消息框出现在访问中,说删除了0个记录。

这可以做吗?

我需要使用不同的语法输入变量吗?

谢谢

benji

尝试将RunSQL字符串更改为:

acApp.DoCmd.RunSQL "DELETE * FROM [OrdersDetailed] WHERE Day([OrderDate])='" & FirstOrderDateDay & "' And Month([OrderDate])='" & FirstOrderDateMonth & "' And Year([OrderDate])='" & FirstOrderDateYear & "'"

最新更新