Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

删除所有符合指定条件的记录

时 间:2017-04-25 10:35:11
作 者:杨雪   ID:42182  城市:南京
摘 要:删除数据技巧: SetOption 方法、Do  While…Loop  语句
正 文:

附件下载

如果需要一次性删除所有符合条件的记录,可以先通过Filter 属性筛选出所有符合条件的记录,再使用RunCommand 方法和Do While…Loop 语句逐条删除符合条件的所有记录,其具体语法:

Do While [循环结束的条件]
    Me.Filter = [筛选条件]
    Me.FilterOn = True
    DoCmd.RunCommand acCmdDeleteRecord
Loop


为了避免Access内置对话框的干扰,需要使用Application 对象的SetOption 方法在程序运行过程中进行屏蔽,其具体语法:

 '禁用系统内置的删除提示对话框
    Application.SetOption "Confirm Action Queries", 0
    Application.SetOption "Confirm Document Deletions", 0
    Application.SetOption "Confirm Record Changes", 0

 

在程序结束运行前,还需要解除内置对话框的屏蔽,否则会使程序在其他Access 应用时出现内置对话框不能使用的情况。解除屏蔽的方法为,将上述3条代码中的“0”改为“1”。

 

代码:

'删除所有部门符合指定条件的记录
Private Sub cmd_删除_Click()
'当所有符合条件的数据删除完毕,或者没有符合条件的 _
记录时,单击“删除”按钮出错
On Error GoTo 删除完毕
    '禁用系统内置的删除提示对话框
    Application.SetOption "Confirm Action Queries", 0
    Application.SetOption "Confirm Document Deletions", 0
    Application.SetOption "Confirm Record Changes", 0
    '自定义删除提示对话框
    Dim Msg As Integer
    Msg = MsgBox("确认全部删除?", vbOKCancel)
    '删除符合条件的对话框
    If Msg = vbOK Then
        '删除所有符合条件的记录
        Do While Me.Recordset.EOF = False
            Me.Filter = "[部门] like '*" & txt_部门 & "*'"
            Me.FilterOn = True
            DoCmd.RunCommand acCmdDeleteRecord
        Loop
删除完毕:
        MsgBox "删除完毕!"
    Else
    MsgBox "已取消删除!"
    End If
    '显示删除所有符合条件的记录后剩余的记录
    Me.FilterOn = False
    '启用系统的内置对话框
    Application.SetOption "Confirm Action Queries", 1
    Application.SetOption "Confirm Document Deletions", 1
    Application.SetOption "Confirm Record Changes", 1
End Sub

 



Access软件网官方交流QQ群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助