Access 2003 的输入掩码(Input Mask)

本文介绍了Access 2003中输入掩码(Input Mask)的使用,它允许开发者控制用户输入,如限制输入类型和位数。输入掩码与Format属性相似,但更侧重于输入控制,可以提高数据验证效率。同时,文章讨论了Input Mask的组成部分、占位符定义以及与Format属性的关系,并提供了设置Input Mask的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我曾经记录过在 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 = "(###) ###-####"

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

字符描述输入掩码示例示例数据
00-9 的数字,输入是必须的,不允许加号 [+] 和减号 [–] (000) 000-0000 (206) 555-0248
9数字或空格,可选输入,不允许加号 [+] 和减号 [–] (999) 999-9999 (21) 555-3002
#数字或空格,可选输入,在编辑状态时,空格显示为空白,保存时,空白会去掉,允许加号 [+] 和减号 [–] #999 -20
LA-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 "000Tel 321

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

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值