如何使用VBA清除Access中的表?

3 excel ms-access vba excel-vba access-vba

我想要做的是,在Excel中,使用VBA将数据推送到现有的Access表.我已经能够做到这一点,但我有一个小打嗝.在我将数据推送到访问之前,我想清除Access表上的当前数据,因此当Excel中的新数据进入时,它是Access表中的唯一数据.我真的不知道如何为Access编写代码,因为该类已经在VBA for Excel上.我尝试了几种不同的方法,每次都不起作用.例如,似乎应该工作的代码是

DoCmd.RunSQL "DELETE tblName.* FROM CoversheetTableFourthAttempt
Run Code Online (Sandbox Code Playgroud)

但是我告诉我定义一个对象时出错.

如果你可以帮助我,我会真的很喜欢它

我把我的代码放在下面以供参考.

Sub AccessFourthMonth()

Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
    ' connect to the Access database
    Set cn = New ADODB.Connection
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
        "Data Source=C:\Users\Kent\Documents\MBA\Winter 2009 Semester\MBA 614\Final Project\shilded\testdatabase.mdb"


' open a recordset
Set rs = New ADODB.Recordset

rs.Open "CoversheetTableFourthAttempt", cn, adOpenKeyset, adLockOptimistic, adCmdTable
' all records in a table
r = 2 ' the start row in the worksheet

Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
    With rs

        .AddNew ' create a new record
        ' add values to each field in the record
        .Fields("Project") = Range("A" & r).Value
        .Fields("Description") = Range("B" & r).Value
        .Fields("Amount") = Range("C" & r).Value
        .Fields("Date") = Range("D" & r).Value
        .Update ' stores the new record
    End With
    r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

End Sub
Run Code Online (Sandbox Code Playgroud)

Mit*_*eat 12

尝试

DoCmd.RunSQL "DELETE * FROM TableName"
Run Code Online (Sandbox Code Playgroud)

本文可能很有用:在VBA代码中执行SQL语句