设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: ycxchen
打印 上一主题 下一主题

[窗体] 批量删除记录

[复制链接]
11#
 楼主| 发表于 2008-12-18 21:36:55 | 只看该作者
6D版主,问题基本解决,感谢您!现还有两个问题不明,再向你请教:
1、你的语句只有当号码位数大于11位才出现提示,而我想当输入的号码小于11位或大于11位时,只要输入顿号就出现提示,于是,我将4楼的代码改成如下:
  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) - 12, 13)
            strWhere = "手机='" & strTemp & "'"
            intCount = DCount("*", "表1", strWhere)
            If intCount = 0 Then
            MsgBox "您刚输入的手机号码不存在"
            Else
            If Len(Me.输入手机号码.Text) < 11 Then
            strTemp = Mid(Me.输入手机号码.Text, Len(Me.输入手机号码.Text) - 1, 10)
            strWhere = "手机='" & strTemp & "'"
            intCount = DCount("*", "表1", strWhere)
            If intCount = 0 Then
                MsgBox "您刚输入的手机号码不存在"
            End If
        End If
    End If
End If
End If
但不能正确运行,不知是什么原因?还觉得我这样写语句结构太混乱。
2、我看过MID函数帮助,字符位数参数前面是用英文的“,”,但在你的语句中为何用了“-”呢?例如,“- 10”。
12#
发表于 2008-12-18 21:41:28 | 只看该作者
问题2先回你,这里是扣掉10.是减号的意思。
13#
发表于 2008-12-18 21:46:29 | 只看该作者
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
        Else
            MsgBox "您输入的电话号码位数不够"
        End If
    End If
End Sub
14#
 楼主| 发表于 2008-12-19 10:05:22 | 只看该作者
我真糊涂,“Len(Me.输入手机号码.Text) - 10”就个是个参数。衷心感谢6D版主的热心指教!
6D版主真是水平一流,品德一流!
15#
 楼主| 发表于 2008-12-19 11:11:17 | 只看该作者
我测试过,按13楼代码运行,只要输入一个数字,电脑都会提示输入的电话号码位数不够,以致不能正常录入号码。于是,我将代码改成如下:

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
          Else
            
              If Len(Me.输入手机号码.Text) < 12 And Right(Me.输入手机号码.Text, 1) = "、" Then
            
              MsgBox "您输入的电话号码位数不够"
             End If
        End If
    End If

问题基本解决,但不完善,不能达到输入的号码小于11位时,只要输入顿号就出现提示,而是输入顿号后再输入一数字时才出现提示,如何解决?盼指教。
16#
发表于 2008-12-19 11:25:14 | 只看该作者
13楼的代码应该不会出现你说的情况,进行判断的前提是你输入中文顿号。

问题基本解决,但不完善,不能达到输入的号码小于11位时,只要输入顿号就出现提示,而是输入顿号后再输入一数字时才出现提示,如何解决?盼指教。
If Len(Me.输入手机号码.Text) < 12 And Right(Me.输入手机号码.Text, 1) = "、" Then
你的代码我没有测试,但这里至少有个问题,应该<11,而不是12。
17#
 楼主| 发表于 2008-12-19 12:01:15 | 只看该作者
谢谢!测试13楼的代码时人是输入中文顿号的,但不能达到目的。我的设想:11位的手机号码加上1个顿号就是12位了。所以,用“If Len(Me.输入手机号码.Text) < 12 And Right(Me.输入手机号码.Text, 1) = "、" Then”来判断,但为何不能达到输入的号码小于11位时,只要输入顿号就出现提示,而是输入顿号后再输入一数字时才出现提示?如何解决?盼指教。
18#
发表于 2008-12-19 12:30:43 | 只看该作者
我的设想:11位的手机号码加上1个顿号就是12位了
keydown事件在前,输入在后,所以还是11位

但为何不能达到输入的号码小于11位时,只要输入顿号就出现提示
我测试过是这样的呀。

而是输入顿号后再输入一数字时才出现提示
没发现此问题。
19#
 楼主| 发表于 2008-12-19 12:46:59 | 只看该作者
感谢6D的热心教导!但我在我的电脑再次测试13楼的代码时,出现的现象始终是一输入一个数字,电脑就会运行“MsgBox "您输入的电话号码位数不够"”这句,我觉得,这并不是输入不输入顿号的问题,应是小于11位的手机号码时的判断问题了。版主大人你认为呢?
20#
发表于 2008-12-19 13:38:11 | 只看该作者
你是不是将
Else
            MsgBox "您输入的电话号码位数不够"
放错位置了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-13 09:55 , Processed in 0.082877 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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