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语句