【发布时间】:2014-03-02 18:48:59
【问题描述】:
我想使用 VB.6 代码删除 MS Access 中表的所有记录。
实际上我打算用它重置我的数据库,我的意思是不再有任何记录。
我该怎么做?
【问题讨论】:
-
你的意思是删除所有表中的所有记录吗?如果是这样,我有代码可以做到这一点。
我想使用 VB.6 代码删除 MS Access 中表的所有记录。
实际上我打算用它重置我的数据库,我的意思是不再有任何记录。
我该怎么做?
【问题讨论】:
我已经做到了。
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
【讨论】:
以下代码将删除您连接到的 Access 数据库的所有表中的所有记录。然而!!如果您已经建立了表之间的关系并且没有指定“级联删除”,那么您无法删除“所有者”表,直到从“成员”表中删除。解决此问题的一种方法是添加错误陷阱,以便您检查该条件,然后忽略(继续下一步)。但是您需要重复运行此代码,直到没有错误为止。你需要设置你的连接字符串(见代码中的注释)!!
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
【讨论】: