2014-03-02 96 views
1

我想使用VB.6代碼刪除MS Access中表的所有記錄。如何刪除MS Access中使用VB6的所有記錄ADO

其實我要重置我的數據庫,因爲我的意思是沒有記錄了。

我該怎麼做?

+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 
+0

你應該標記自己的答案是正確的,順便說一句。 – Paul

+0

好吧,但它會在1小時內,我不知道爲什麼! –

1

這是將刪除所連接的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 
+0

嗨,謝謝 它有錯誤, 何我可以輕鬆做到嗎? 我有一些表,我想刪除它的所有記錄除了INFOTBL。 –

+0

1.哪條線給你錯誤; 2.什麼錯誤代碼和消息以及使用的是什麼值? 3.您是否建立了與Access數據庫的正確連接? –

+0

1.in ADOX.Catalog和ADOX.Table 2.用戶定義 。是的 沒關係,我發現我的答案,你可以在下一篇文章中看到,再見 –

相關問題