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

Access 2003 的输入掩码(Input Mask)

时 间:2012-10-31 08:50:00
作 者:gracexu   ID:60  城市:南京
摘 要:Access 2003 的输入掩码(Input Mask)
正 文:

    我曾经记录过在 Excel 中如何自定义单元格数据的显示方式,在 Access 中,基础表和查询的字段,某些窗体控件也有 Format 这个属性,可以让我们自定义数字、时间日期、文本的显示方式。大体上,Access 和 Excel 在定义格式时用的占位符差不多,不过 Access 是强数据类型的,对于数字、日期、文本等各个不同的数据类型,有不同的格式定义,比 Excel 要复杂一些。

    我这里要记录的是 Access 中表和查询的字段,某些窗体控件的 Input Mask(输入掩码)属性。InputMask Format 属性粗看上去差不多,都能控制数据的显示方式,但 InputMask 属性一个很实用的地方是可以控制用户的输入,为开发人员在控制用户输入上提供便利。比如,通过自定义输入掩码,我们可以控制用户在文本框中或基础表字段中只能输入字母,或只能输入数字,并且还能控制输入的字母或数字的位数。这样比等用户随意输入后,再在代码里判断输入数据的有效性,或通过 Validation Rule(有效性规则)属性来判断输入要高效的多。

    需要说明的是,对于同一个数据,如果我们既定义了 Format 属性,又定义了 InputMask 属性,Format 属性的优先级比InputMask 属性高,这时 InputMask 属性会被忽视的。

下面我们就看一下如何自定义 Input Mask 属性。

InputMask 属性最多可由三个部分组成,中间用分号(;)隔开。下表是每部分的描述:

组成部分 描述
第一部分 定义输入掩码,比如 !(999) 999-9999。关于可用来定义输入掩码的占位符,请看下表。
第二部分 指定 Access 是否在基础表里把实际输入的数据和字面上显示出来的字符一起储存。如果这部分是 0,所 有字面上显示出来的字符(例如,电话号码输入掩码中的圆括号)都保存下来;如果这部分是 1 或没有填,只有 实际输入的字符被保存。
第三部分 指定在应该输入字符的地方,Access 向用户显示的提示字符。我们在这部分可以使用任何字符。要显示空格,把空格用双引号括起来(" ")。

    在 Visual Basic 中,用字符串变量给该属性赋值。例如,下面的语句设置某个文本框控件的 InputMask 属性,该文本框用来输入电话号码:

Forms!Customers!Telephone.InputMask = "(###) ###-####"

下面讲一下用来定义输入掩码的占位符。占位符可用来规定输入的是字母还是数字,输入是必须的还是可选的等等。

字符 描述 输入掩码示例 示例数据
0 0-9 的数字,输入是必须的,不允许加号 [+] 和减号 [–] (000) 000-0000 (206) 555-0248
9 数字或空格,可选输入,不允许加号 [+] 和减号 [–] (999) 999-9999 (21) 555-3002
# 数字或空格,可选输入,在编辑状态时,空格显示为空白,保存时,空白会去掉,允许加号 [+] 和减号 [–] #999 -20
L A-Z 的字母,输入是必须的 L0L0L0 t2F8m4
? A-Z 的字母,输入是可选的 ????????? mary
A 字母或数字,输入是必须的 (000) AAA-AAAA (206) 555-TELE
a 字母或数字,输入是可选的
& 任何字符或空格,输入是必须的
C 任何字符或空格,输入是可选的
. , : ; - / 小数点占位符和千分位,日期,时间分隔符(实际显示的字符根据控制面板里 Regional Settings 的设置)
< 所有的字符转换成小写 >L Maria
> 所有的字符转换成大写 > L0L0L0 T2F8M4
! 输入掩码从右到左显示,而不是从左到右。输入的字符从左向右填充(一般情况下,输入的字符先从右边开始填起)。感叹号可以出现在输入掩码的任何地方。
/ 反斜杠后面的字符如实显示,附加在实际输入字符上(例如,/A 显示字母 A),适用于只有一个附加字符的情况。 /T000 T123
" " 双引号里面的字符如实显示,附加在实际输入字符上(例如,"Tel" 显示字符串 Tel),适用于多个附加字符的情况。 "Tel "000 Tel 321

注意:InputMask 属性还可以设置为“Password”这个词,在设计视图控件的属性页中输入 Password,不要加引号。任何输入的字符如实储存,但显示为星号(*),这样就可以防止在屏幕上显示输入的字符。

    当输入是可选的,我们实际输入的字符数可以比定义的占位符数量少。但不管输入是必须的还是可选的,实际输入的字符数都不能比定义的占位符数量多。

    如果在定义了输入掩码的字段或控件中复制数据,字面上显示的字符也会被复制,尽管我们实际并没有输入这个字符。比如我们定义了 "Part No. " ##### ,只要输入数字“00001”就会显示为 Part No.   00001。复制并粘贴该字段,结果仍然是 Part No.   00001。

输入掩码只对键盘的直接输入进行有效性控制。如果我们使用导入功能,执行操作查询(比如 Update),或用 Visual Basic 语句设置控件的值,输入掩码是不会起作用的。



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

常见问答:

技术分类:

相关资源:

专栏作家

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