从表中删除所有记录 - doCMD.RunSQL

Posted

技术标签:

【中文标题】从表中删除所有记录 - doCMD.RunSQL【英文标题】:Delete all records from table - doCMD.RunSQL 【发布时间】:2014-03-04 13:47:42 【问题描述】:

我希望在向其添加新数据之前清除所有记录的本地表。我正在尝试使用 doCMD.RunSQL 命令执行此操作,但一直收到运行时错误,我猜是因为它位于打开的连接中,我不确定如何执行此操作。

任何帮助表示赞赏。

谢谢

Sub GetUsers()
    Dim oConnection As Object
    Dim oSheet As Object
    Dim oCell As Object
    Set oConnection = CreateObject("ADODB.Connection")
    Dim strDBPath As String
    strDBPath = "C:/Users/stevemcco/Desktop/Users.accdb"
    Dim sConn As String
    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                        "Data Source=" & strDBPath & ";" & _
                        "Jet OLEDB:Engine Type=5;" & _
                        "Persist Security Info=False;"

    oConnection.Open sConn

    DoCmd.RunSQL "Delete * from Table1"

    For Each oSheet In ThisWorkbook.Sheets
        For Each oCell In oSheet.Columns(1).Cells
            If oCell.Value = "" Then
                Exit For
            End If

            If (oCell.Row > 1) Then 'Jumps the header
                oConnection.Execute " Insert Into Table1(ID,Area) " _
                & " VALUES ('" & oCell.Value & "','" & oSheet.Name & "')"
            End If

        Next
    Next
    oConnection.Close
    Set oConnection = Nothing
End Sub

【问题讨论】:

Excel 中没有 DoCmd 对象。 我必须添加对 MS DAO 3.6 对象库的引用才能使其可见。请注意,仍然无法正常工作。 【参考方案1】:

对于您将使用的本地数据库:CurrentDb.Connection.Execute "DELETE * FROM Table1"

在你的情况下使用:oConnection.Execute "DELETE * FROM Table1"

【讨论】:

如果我想查询这个新表数据并将任何重复的数据返回到我的主 Excel 工作表中,我该怎么做?

以上是关于从表中删除所有记录 - doCMD.RunSQL的主要内容,如果未能解决你的问题,请参考以下文章

docmd.runsql ("从 &strValue& 中删除 *")

DoCmd.RunSQL 中的 VBA 变量

SQL查询:从表中删除除最新N之外的所有记录?

从多个表中删除数据

MS Access currentdb.excute 的结果与 Docmd.RunSQL 不同

如何使用 DoCmd.RunSQL