oracle删除表中数据_工作表中提供的特定数据在数据库中批量删除的方法
大家好,我們今日繼續講解VBA數據庫解決方案的第25講內容:利用VBA,把工作表中提供的數據在數據表中批量刪除的方法。在上一講中,我們講了實現在數據表中刪除記錄的一般方法,這種方法可以對重復的數據進行處理,但實際的情況是,我們的數據記錄很多時候是沒有重復的,而且如果數據量很大,該怎么處理呢?今日我們就講解如何在記錄集中批量刪除給定記錄的方法。
實例:我們有一個員工的信息表,導出的數據如下:
在工作實際中我們需要刪除其中的100014,100015,100017,100018,的記錄,當然還可以更多,如下表格是需要在數據庫中刪除的數據信息:
也就是說我們要刪除的數據中是以員工編號為索引的記錄,這個時候需要如何處理?代碼該如何寫呢?如果仍采用上講的辦法也是可以的,但今天我們將介紹一種新的方法。代碼如下:
Sub mynzCreateDataTable_3() '第25講 利用VBA把工作表中提供的數據在數據表中批量刪除的方法
Dim cnADO, rsADO As Object
Dim strPath, strTable, strWhere, strSQL, strMsg As String
Set cnADO = CreateObject("ADODB.Connection")
Set rsADO = CreateObject("ADODB.Recordset")
strPath = ThisWorkbook.Path & "mydata2.accdb"
strTable = "員工信息"
cnADO.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & strPath
strSQL = "SELECT * FROM " & strTable
rsADO.Open strSQL, cnADO, 1, 3
'匯報給用戶記錄數
MsgBox "刪除前記錄數為:" & rsADO.RecordCount
rsADO.Close
strWhere = " WHERE EXISTS(" _
& "SELECT * FROM [Excel 12.0;Database=" _
& ThisWorkbook.FullName & "].[" & ActiveSheet.Name & "$" _
& Range("a1").CurrentRegion.Address(0, 0) & "] " _
& "WHERE 員工編號=" & strTable & ".員工編號)"
strSQL = "SELECT 員工編號 FROM " & strTable & strWhere
rsADO.Open strSQL, cnADO, 1, 3
If rsADO.RecordCount > 0 Then
strSQL = "DELETE FROM " & strTable & strWhere
cnADO.Execute strSQL
MsgBox rsADO.RecordCount & "條記錄被刪除。
總結
以上是生活随笔為你收集整理的oracle删除表中数据_工作表中提供的特定数据在数据库中批量删除的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql视图的简介_mysql视图简介
- 下一篇: delphi xe firedac my