设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[其它] 禁止用户在某文本框内输入特殊字符

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2015-11-23 21:51:25 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
麻烦请问一下各位,在窗体上有一个文本框,用户可以自由输入内容,但是这个文本框里的字符会作为文件名,如果用户输入的内容还有非法文件名字符,在生成文件的时候就会报错。

所以想请问一下怎么能实现在用户输入完成之后,检测输入内容里是否还有非法特殊字符呢?如果有则弹出消息框提示。

谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
 楼主| 发表于 2015-11-24 00:08:09 | 显示全部楼层
自己在网上找到了,自己回答自己的问题真是太悲惨了。。。。。。

文本框的名字叫Title,代码写在更新事件里。乃萌自己试试吧,不要问我为什么,我就是改改能用的人.....


Private Sub Title_AfterUpdate()
   
    If Not IsNull(Title.Value) Then

        Dim SpecielCharToSearch As String
        Dim CtrlErrTitre As Long
        Dim SpecCharExist As Boolean
        Dim i As Integer

        SpecCharExist = False

        CarToSearch = "`~.&~#|\^@£$%*!/:;?><µ°²§¨¤," & Chr(34)
        For i = 1 To Len(SpecielCharToSearch)
            CtrlErrTitre = InStr(Titre.Value, Mid(SpecielCharToSearch, i, 1))
            '挨个查找定义的特殊字符是否存在于文本框内,如果存在则返回此字符串的位置,如果不存在则返回0
            If CtrlErrTitre <> 0 Then
                SpecCharExist = True
            End If
        Next i
        If SpecCharExist = True Then
            MsgBox "标题不能包含以下特殊字符: " & Chr(34) & ".&~#|\^@£$%*!/:;?><µ" & Chr(34) & "。请重新输入。", vbExclamation + vbOKOnly, "禁止输入特殊字符"
            Title.Value = Null
            Titre.SetFocus
        End If
    End If
     
End Sub

点击这里给我发消息

3#
 楼主| 发表于 2015-11-24 15:10:56 来自手机 | 显示全部楼层
roych 发表于 2015-11-24 10:25
我一般会在提交时再统一检测,不符合的再提示。
另外,如果不嫌复杂,用正则表达式效率会更高一些。
这个 ...

正是是洒家!

正则表达式是啥?望阁下不吝赐教!
来自: 微社区

点击这里给我发消息

4#
 楼主| 发表于 2015-11-24 16:22:05 | 显示全部楼层
roych 发表于 2015-11-24 15:47
试试这个:
引用Microsoft VBScript Regular Expressions 5.5
值得注意的是,部分属于正则表达式的特殊 ...

测试成功!!

虽然洒家不知道程序写了什么,但是十分好用~哈哈哈哈哈哈哈哈

拜谢R神!

--------------------------------------------------------------------------------------------------------
0_o 我整个傻眼了....

感受到了测试字段的怨念.....

洒家真的寄了,要是十二月还没收到洒家再寄一封!!!

点击这里给我发消息

5#
 楼主| 发表于 2015-11-24 17:26:57 | 显示全部楼层
todaynew 发表于 2015-11-24 17:07
最简单的方案是在更改事件中处理,假设你有一个文本框名曰Text0,则下以下代码:
Private Sub Text0_Chang ...

哇噢噢~这个方法也好厉害!!


感谢大师!学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 02:21 , Processed in 0.151333 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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