掩码和格式的区别
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我曾经记录过在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),适用于只有一个附加字符的情况。 \T 000 T123
" " 双引号里面的字符如实显示,附加在实际输入字符上(例如,"Tel" 显示字符串Tel),适用于多个附加字符的情况。"Tel "000 Tel 321
注意:InputMask 属性还可以设置为“Password”这个词,在设计视图控件的属性页中输入Password,不要加引号。任何输入的字符如实储存,但显示为星号(*),这样就可以防止在屏幕上显示输入的字符。
当输入是可选的,我们实际输入的字符数可以比定义的占位符数量少。但不管输入是必须的还是可选的,实际输入的字符数都不能比定义的占位符数量多。
如果在定义了输入掩码的字段或控件中复制数据,字面上显示的字符也会被复制,尽管我们实际并没有输入这个字符。比如我们定义了"Part No. " ##### ,只要输入数字“00001”就会显示为Part No. 00001。复制并粘贴该字段,结果仍然是Part No. 00001。
输入掩码只对键盘的直接输入进行有效性控制。如果我们使用导入功能,执行操作查询(比如Update),或用Visual B asic 语句设置控件的值,输入掩码是不会起作用的。