设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1234下一页
返回列表 发新帖
查看: 4916|回复: 32
打印 上一主题 下一主题

[窗体] 批量删除记录

[复制链接]
跳转到指定楼层
1#
发表于 2008-12-18 10:19:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想通过用手机号码作条件来删除记录,想在窗体的文本框中连续输入一定数量的手机号码,例如5个或10个号码,每个号码用中文的顿号隔开,后单击“删除”按钮,能将输入的手机号码的所有记录删除。请问,要实现此功能如何写VBA代码?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-12-18 10:34:09 | 只看该作者
Private Sub Command2_Click()
    Dim strWhere As String, strSQL As String
    Dim strArray() As String
    Dim i As Integer
    If IsNull(Me.输入手机号码) Then Exit Sub
    strArray = Split(Me.输入手机号码, "、")
    For i = 0 To UBound(strArray)
        strWhere = strWhere & "'" & strArray(i) & "',"
    Next
    strSQL = "delete from 表1 where 手机 in (" & strWhere & ")"
    CurrentDb.Execute strSQL
End Sub


[ 本帖最后由 Henry D. Sy 于 2008-12-19 19:46 编辑 ]
3#
 楼主| 发表于 2008-12-18 15:04:44 | 只看该作者
6D版主太厉害了,不愧是版主,十分感谢您!我想完善两点:1、如果一次输入了数个号码,但其中一个或多个在表中是不存在的,如何用VBA判断?
2、每次限制输入的号码最多不能超过50个,如何写代码?
盼6D高手指教!
4#
发表于 2008-12-18 15:49:31 | 只看该作者
问题1,如果这样要求,在最后一个号码输入完毕必须输入中文顿号,否则access不知道你输入结束。
            哪这样的话,上面的删除代码需要修正
            供你参考,自己测试一下

Private Sub 输入手机号码_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim strWhere As String
    Dim strTemp As String
    Dim intCount As Integer
    If KeyCode = 229 Then
        If Len(Me.输入手机号码.Text) >= 11 Then
            strTemp = Mid(Me.输入手机号码.Text, Len(Me.输入手机号码.Text) - 10, 11)
            strWhere = "手机='" & strTemp & "'"
            intCount = DCount("*", "表1", strWhere)
            If intCount = 0 Then
                MsgBox "您刚输入的手机号码不存在"
            End If
        End If
    End If
End Sub

点击这里给我发消息

5#
发表于 2008-12-18 16:00:50 | 只看该作者
受教![:50] [:50]
6#
发表于 2008-12-18 16:05:15 | 只看该作者
问题2

Private Sub 输入手机号码_Change()
    Dim intLength As Integer
    intLength = Len(Me.输入手机号码.Text)
    If intLength > 600 Then
        MsgBox "输入的号码数量已到极限"
    End If
End Sub
7#
发表于 2008-12-18 16:09:49 | 只看该作者
判断最后是不是以中文顿号结束输入

Private Sub 输入手机号码_BeforeUpdate(Cancel As Integer)
    If Right(Me.输入手机号码, 1) <> "、" Then
        MsgBox "请输入中文顿号结束输入"
        Cancel = True
    End If
End Sub
8#
 楼主| 发表于 2008-12-18 17:55:40 | 只看该作者
万分感谢6D版主,你的水平太高超了!在你面前,对于我的ACCESS水平,我只不过是个小弟弟。好,我先试用。
9#
发表于 2008-12-18 19:23:36 | 只看该作者
6D,真高,佩服,学习,收藏代码
10#
发表于 2008-12-18 19:33:27 | 只看该作者
收藏              .
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-10 14:52 , Processed in 0.084787 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表