如何使用VB6 ADO删除MS Access中表的所有记录

时间:2014-03-02 18:48:59

标签: ms-access vb6

我想使用VB.6代码删除MS Access中表的所有记录。

实际上我要用它来重置我的数据库,因为我的意思是不再有记录。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

我做到了。

On Error Resume Next
Dim cnn As New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &    "\DB.mdb"
cnn.Open
cnn.Execute "delete * from LogTBL"
cnn.Close

答案 1 :(得分:1)

以下代码将删除您所连接的Access数据库的所有表中的所有记录。然而!!如果您在表之间建立了关系并且未指定“级联删除”,则在从“成员”表中删除之前,您无法删除“所有者”表。另一种方法是添加一个错误陷阱,以便检查该条件,然后忽略(Resume Next)。但是,您需要重复运行此代码,直到没有错误。您需要设置连接字符串(请参阅代码中的注释)!!

Function Delete_All_Data()
Dim cnLocalData     As ADODB.Connection
Dim catLocal        As ADOX.Catalog
Dim tdf             As ADOX.Table
Dim strSQL          As String
Dim strTableName    As String

    Set cnLocalData = New ADODB.Connection

    MsgBox " Add code to connect to your database either using Connection cnLocalData or your own and change this code!!!"

    Set catLocal = New ADOX.Catalog
    catLocal.ActiveConnection = cnLocalData

    For Each tdf In catLocal.Tables
        If UCase(tdf.Type) = "TABLE" And UCase(Left(tdf.Name, 4)) <> "MSYS" Then
            if tdf.Name <> "INFOTBL" Then
                strTableName = tdf.Name
                strSQL = "delete * from [" & strTableName & "];"
                cnLocalData.Execute strSQL
            End If
        End If
    Next tdf
    Set tdf = Nothing
    Set catLocal = Nothing
    cnLocalData.Close
    Set cnLocalData = Nothing

End Function