设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3449|回复: 13
打印 上一主题 下一主题

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

[复制链接]

点击这里给我发消息

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

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

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

点击这里给我发消息

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

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


感谢大师!学习了!
12#
发表于 2015-11-24 17:07:42 | 只看该作者
本帖最后由 todaynew 于 2015-11-24 17:10 编辑

最简单的方案是在更改事件中处理,假设你有一个文本框名曰Text0,则下以下代码:
Private Sub Text0_Change()
    Dim char As String
    char = Right(Me.Text0.Text, 1)
    If CharExist(char) = True Then
        Me.Text0.Text = Replace(Me.Text0.Text, char, "")
    End If
    Me.Text0.SelStart = Len(Nz(Me.Text0.Text, "0"))
End Sub

Function CharExist(char As String) As Boolean
    Dim str As String
    str = "`~.&~#|\^@£$%*!/:;?><μ°§¨¤," & Chr(34)
    CharExist = InStr(str, char) > 0
End Function

这样就无需跳出任何提示,也不会输入非法字符了。

点击这里给我发消息

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

测试成功!!

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

拜谢R神!

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

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

洒家真的寄了,要是十二月还没收到洒家再寄一封!!!
10#
发表于 2015-11-24 15:47:56 | 只看该作者
本帖最后由 roych 于 2015-11-24 15:55 编辑
Charline 发表于 2015-11-24 15:10
正是是洒家!

正则表达式是啥?望阁下不吝赐教!

试试这个:
引用Microsoft VBScript Regular Expressions 5.5
  1. Function GetReg(ByVal strSource As String) As Boolean
  2.     Dim reg As New RegExp
  3.     Dim strPattern As String
  4.     strPattern = "[`~\.&~#\|\^@£\$%\*!/:;?><μ°§¨¤,""]"
  5.     reg.Pattern = strPattern
  6.     GetReg = reg.test(strSource)
  7. End Function
复制代码
值得注意的是,部分属于正则表达式的特殊字符,需要使用反斜杠【\】进行转义。例如:匹配点号【.】,应使用【\.】
引用方法:在button的click事件里输入:
if GetReg(me.text0) then
msgbox "您输入了特殊字符,请重新输入"
me.text0=""
me.text0.setfocus
end if



本帖子中包含更多资源

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

x

点击这里给我发消息

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

正是是洒家!

正则表达式是啥?望阁下不吝赐教!
来自: 微社区
8#
发表于 2015-11-24 11:26:09 | 只看该作者
小猴猴老伤心了
7#
发表于 2015-11-24 11:14:13 | 只看该作者
Charline 发表于 2015-11-24 00:08
自己在网上找到了,自己回答自己的问题真是太悲惨了。。。。。。

文本框的名字叫Title,代码写在更新事 ...

写成函数返回逻辑值,将该还是用于有效性规则属性。

点评

我很赞成  发表于 2015-11-24 15:55
6#
发表于 2015-11-24 10:25:43 | 只看该作者
我一般会在提交时再统一检测,不符合的再提示。
另外,如果不嫌复杂,用正则表达式效率会更高一些。
这个大概就是person童鞋吧?

点击这里给我发消息

5#
发表于 2015-11-24 08:27:55 | 只看该作者
1.更新后事件
2.直接弹出保存文件对话框。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 09:08 , Processed in 0.113851 second(s), 39 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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