我希望能够在一组数据中查找最小/第一个日期,然后在访问中运行查询,该查询将从当天开始删除某个表中的所有数据。
到目前为止,我所拥有的是:
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 & "'"