数据库如何删除表 数据库删除表记录( 二 )


代码解读:
1):
Dim cnADO As New ADODB.Connection
Dim rsADO As ADODB.Recordset
Dim strPath, strSQL, strTable As String
strPath = ThisWorkbook.Path & \”\\mydata2.accdb\”
strTable = \”19年销售情况\”
cnADO.Open \”Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\” & strPath
strSQL = \”SELECT * FROM \” & strTable
Set rsADO = New ADODB.Recordset
rsADO.Open strSQL, cnADO, 1, 3
\’汇报给用户记录数
MsgBox \”删除前记录数为:\” & rsADO.RecordCount
Sheets(\”Sheet4\”).Select
仍是用前期绑定的方法建立ADO,打开连接和记录集
2):
t = 2
Do While Cells(t, 1)\”\”
rsADO.MoveFirst
For m = 1 To rsADO.RecordCount
SC = \”\”
GG = \”\”
For i = 0 To rsADO.Fields.Count – 1
If rsADO.Fields(i) = Sheets(\”Sheet4\”).Cells(t, i + 1) Then
SC = SC & \”OK\”
Else
SC = SC & \”NOT\”
End If
Next i
If InStr(SC, \”NOT\”) = 0 Then
rsADO.Delete
rsADO.Update
GG = \”OK\”
End If
rsADO.MoveNext
Next m
If GG\”OK\” Then MsgBox \”第\” & t & \”行数据没有找到,无法删除\”
t = t + 1
Loop
上述代码中,用t记录了当前工作表的行数,一直循环到空值出现,然后,针对每一行的数据,在数据表中校验,如果完成相同,那么删除,如何判断呢,我们用了两个标识,一个是SC,如果每个值都相同,那么SC中不会出现“NOT”,在最后我们判断SC中如果没有“NOT”,那么我们删除,否则向下运行 。而GG的标识则是提示是否有数据没有找到,如果没有找到,那么提示某行没有找到 。
在删除数据的时候用了
rsADO.Delete
rsADO.Update
这是删除某个数据常用的方法 。
3):
\’汇报给用户最后的记录数
MsgBox \”删除后记录数为:\” & rsADO.RecordCount
rsADO.Close
cnADO.Close
Set rsADO = Nothing
Set cnADO = Nothing
在最后提示给用户删除的结果并释放内存 。
下面看我们程序的运行,首先会提示当前数据的数量:

数据库如何删除表 数据库删除表记录

文章插图
数据库如何删除表 数据库删除表记录

文章插图

数据库如何删除表 数据库删除表记录

文章插图
数据库如何删除表 数据库删除表记录

文章插图
如果没有找到数据,则有提示:
数据库如何删除表 数据库删除表记录

文章插图
数据库如何删除表 数据库删除表记录

文章插图
我们再次运行,会提示数据没有找到:
数据库如何删除表 数据库删除表记录

文章插图
数据库如何删除表 数据库删除表记录

文章插图
今日内容回向:
1 如何删除记录集中的数据?
2 如何根据工作表中提供的数据删除数据表中的数据?
本讲内容参考程序文件:VBA与数据库操作(第一册).xlsm
数据库如何删除表 数据库删除表记录

文章插图
数据库如何删除表 数据库删除表记录

文章插图
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【数据库如何删除表 数据库删除表记录】
数据库如何删除表 数据库删除表记录

文章插图
数据库如何删除表 数据库删除表记录

文章插图

推荐阅读