DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > Access > 技术手册

4.6选择字段数据类型、大小和格式

你必须为表中的每个字段指定一个字段数据类型,除非你想使用默认情况下 A c c e s s将采用
的文本数据类型。关系数据库设计的原则之一便是在一个字段中包含的所有数据都是由一种数
据类型的数据构成的。A c c e s s比大多数P C数据库管理器提供的数据类型和格式要广泛一些。除
了设置数据类型之外,你还可以设置决定数据的格式、大小等特性的字段属性和影响数值型字
段值精度和外观的其他特征。表 4 - 1列出的是你可以为A c c e s s表中包含的数据选择的所有字段
数据类型。
表4-1 在A c c e s s中可用的字段数据类型
信 息 数 据 类 型 数据类型的描述
字符 文本 文本字段最为常见,所以A c c e s s将文本作为了默认的数据类型。一个
文本字段最多可以包含 2 5 5个字符,而你可以指定其最大的长度小于或
者等于2 5 5。A c c e s s的默认值为5 0
备注 备注字段通常可以包含多达 6 5 5 3 5个字符。一般使用这种字段提供描
述性的注释。A c c e s s在“数据表”视图中显示“备注”字段的内容。不
能将这种字段作为关键字字段
数值 数字型 有各种数值数据子类型可以使用。你可以从表 4 - 2中所列出的“字段大
小”属性设置中选择一个合适的数据子类型。通过将其格式属性设置为
表4 - 3中所列出的格式之一,可以确定如何显示数字
80 第一部分 Access基础 下载(续)
信 息 数 据 类 型 数据类型的描述
自动编号 自动编号字段也是数值数据(长整数),A c c e s s将为向表中添加的每个
新记录自动地填写该字段。 A c c e s s能够为每个新记录将自动编号值自动
加1,或者用一个随机产生的长整数填充该字段,具体的做法取决于你
对新值属性的设置。在一个使用了自动编号字段的表中的最大记录数大
约为2 0亿多一点
Ye s / N o A c c e s s使用逻辑(布尔)字段。(数字逻辑值 - 1为Ye s(Tr u e),0为N o
(F a l s e))使用格式属性可以将 Ye s / N o字段的值显示为Ye s或者N o、真或
假、开或关、- 1或0(你还可以使用任何非零值代表真)。逻辑字段可以
被索引但是不能作为关键字字段
货币 C u r r e n c y具有固定的格式,其小数点右边为4位,可以避免会计计算要
精确到分时进行四舍五入
日期和时间 日期/时间 日期和时间是以固定的格式存储的。日期由“日期 /时间”值的全部整
数部分表示,而时间则由其小数部分表示。通过将其格式属性设为表 4 - 3
中列出的值之一,可以控制A c c e s s显示日期的方式
大对象 O L E对象 用以包含位图图形,矢量类型( B L O B、绘画、波形声音文件和其他
由大的A c t i v e X组件应用创建的二进制数据类型)。不能将O L E对象字段
指定为关键字字段,并且也不能在索引中包含O L E对象字段
We b及其他 超级链接 超级链接字段用于存储We b页面H T M L文档的地址。存储在超级链接
字段中的We b地址所指向的We b页面既有可能位于I n t e r n e t之上,也有可
能位于i n t r a n e t之上。点击“超级链接”字段将导致 A c c e s s启动We b浏览
器并且显示所指向的 We b页面;选择“插入”,“超级链接”,便可以添
加一个超级链接地址
不论你在A c c e s s中将文本字段的长度设为多大,数据库文件总是将它们存储为一个可变长
的记录。所有的结尾空格都将被删除。传统的PC RDBMS的长度固定的字符字段需要在长字段
中为短文本加入填充,浪费了空间。

4.6.1 为数值和文本数据选择字段大小
字段的“字段大小”属性决定了数字型字段使用的数据类型或者固定长度的文本字段可以
接受多少个字符。为了将“字段大小”属性和表 4 - 1列出的数据类型区别开来,我们将它称为
子类型。对于数字,你可以从“表”设计窗口“字段属性”窗格中的下拉列表中选择“字段大
小”属性值 (见图4 - 7 )。
1. 数值数据的子类型
表4 - 1中的数字数据类型并非一个完全说明的数据类型。你必须从表 4 - 2中所列出的子类型
中为字段大小属性选择一个子类型,才能正确地定义数值数据类型。为“数字”字段选择一个
数据子类型时,需要遵循如下步骤:
1) 选择你想为之选择子类型的“数字”字段的数据类型单元格。
2) 单击“字段属性”窗口中的“字段大小”文本框。你也可以按下 F 6进行窗口切换,然后
使用箭头键将插入符(^)放到“字段大小”文本框中。
3) 单击下拉箭头,打开选择类表,如图4 - 7所示。你也可以使用F 4键来打开该列表。
4) 选择数据子类型。我们在表 4 - 2中对数据子类型进行了描述。当你选择之后,该列表将
关闭。

在你选择一个“字段大小”属性之后,便可以从表 4 - 3中列出的格式中为“格式”属性选
择一个值,对数据的显示进行控制。表 4-2 包含C u r r e n c y数据类型,因为它也可以被当作“数
字”数据类型的一个子类型来使用。
不管你为数据选择了什么样的显示格式,数字的个数、范围和存储需求都不会改变,与所
指定的字段大小属性保持一致。这些数据类型在 V B A 6 . 0中都是可用的。V B A将表4 - 2中列出的
所有数据类型都当作了保留字。除了说明一个数据类型之外 ,你不能将数据类型保留字在 V B A
函数和过程中用于其他任何目的。
表4-2 由字段大小属性决定的数字数据类型的子类型
字 段 大 小 小 数 位 数 取 值 范 围 字 节 数
D e c i m a l 2 8 -1 0 ^ - 2 8~1 0 ^ 2 8-1 1 4
双精度型 1 5 -1.797 * 10^308~+1.797 * 10^308 8
单精度型 7 -3.4 * 10^38~+3.4 * 10^38 4
长整型 无 -2 , 1 4 7 , 4 8 3 , 6 4 8~+ 2 , 1 4 7 , 4 8 3 , 6 4 7 4
Integer 整型 无 -3 2 , 7 6 8~3 2 , 7 6 7 2
Byte 字节 无 0~2 5 5 1
货币(是一个数据类型, 4 -9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 . 5 8 0 8 8
而不是一个子类型) ~+ 9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 . 5 8 0 8
原则上,在选择“字段大小”属性时要综合考虑能够包含你有可能使用的值的字节数目是
否为最少,精度表示是否能充分满足你的需要。对于整数和长整数进行计算操作比单精度和双
精度数据类型 (也叫做浮点数)或者货币和日期/时间数据类型 (定点数)要快许多。M i c r o s o f t为
了与SQL Server 7.0/MSDE 小数数据类型相一致,特意添加了小数数据子类型。
2. 宽度固定的文本字段
你可以创建一个宽度固定的文本字段,只需设置一下“字段大小”属性的值即可。在默认
情况下,A c c e s s将创建一个5 0个字符宽的文本字段。根据你想使用一种固定长度,在字段大小
单元格中输入一个位于1到2 5 5范围之内的值。如果你想导入字段的数据比所选择的字段大小长,
A c c e s s将对该数据进行截取处理,超出所指定限制的位于右边的字符将丢失。因此你输入的字
82 第一部分 Access基础 下载段长度值要确保能够容纳你有可能向该字段输入的最长字符串。
提示 术语宽度固定和长度固定在A c c e s s中的含义有两个差别。即使你为一个文本字段数据类型
的字段指定了一个固定宽度,Access仍将以可变长的形式在该字段中存储数据。
Access 2000 文本、超级链接和M e m o字段存储字符时使用的是在Windows NT 4.0中引入的
Unicode 格式。正如在第1章中所简短介绍的那样,U n i c o d e使用两个字节存储每个字符;这
就使得U n i c o d e与以前需要双字节字符集 ( D B C S )来提供大量像形文字的Asian 语言能够取
得一致。U n i c o d e存储通常将传统的 ( A N S I )文本和备注字段的大小扩大了一倍。 Access 2000
提供了一个新的特征,叫做 U n i c o d e压缩,它将其值以0开头的字符—整个拉丁字符集存储为
一个单个的字节。当你检索字符数据时,A c c e s s又将每个字符值扩展为两个字节。
注意 尽管使用了U n i c o d e压缩,在J e t数据库中包含大量文本的表比以前使用非 U n i c o d e时仍大
了许多。当更新一个大的 J e t数据库时,要确保留出大量的磁盘空间,至少保证 5 0 %的大小增
长才行。
3. OLE对象数据类型的子类型
不是字符和数字数据类型的字段必须使用 OLE (对象链接与嵌入)对象数据类型。第1 9章对
O L E对象字段数据类型进行了讨论。数据子类型由创建数据的 OLE 服务器决定,而不是通过
在文本框中输入或者通过在下拉列表中选择来设置。

4.6.2 选择显示格式
为所选择的数据类型建立格式属性,使得 A c c e s s能够以适合于你的应用的格式显示它们。
选择格式时,先选择字段,然后单击“字段属性”窗口中的“格式”文本框。图 4 - 8所示为
A c c e s s为格式化长整数数据类型提供的选择。数字、日期 /时间和Ye s / N o数据类型的格式化可
以通过选择一个标准格式或者创建你自己定义的格式来完成。我们在以下几节将分别描述这些
两种方法。
图4-8 为长整型字段指定一个标准格式
1. 用于数字、日期/时间和Ye s / N o数据类型的标准格式
A c c e s s为数字、日期/时间和Ye s / N o数据类型字段中的数据值提供了1 7种标准格式。在表4 -
3中所给出的标准格式应该能够满足你的绝大部分需要了。
表4-3 Access 数字、日期/时间,和Ye s / N o数据类型的标准显示格式
数 据 类 型 格 式 外 观
数字 普通数字 1 2 3 4 . 5
货币 $1 234.50
固定 1 2 3 4 5
标准 1 234.50
百分比 0 . 1 2 3 4 = 1 2 . 3 4 %
科学记数 1 . 2 3 E + 0 3
日期/时间 普通日期 3/1/99 4:00:00 PM
长日期 T h u r s d a y,March 1,1999
中日期 1 - M a r- 1 9 9 9
短日期 3 / 1 / 1 9 9 9
长时间 4:00:00 PM
中时间 04:00 PM
短时间 1 6 : 0 0
Ye s / N o 是/否 Ye s或者N o
真/假 Tr u e或F a l s e
开/关 O n或O ff
无 1或0
M i c r o s o f t的2 0 0 0年 ( Y 2 K )兼容性特征在Access 2000的 “选项”对话框中“常规”页下增
加了一个新的设置选项。使用四位数年份格式框下有两个复选框—“本数据库”和“所
有数据库”。标记任何一个复选框都将改变“日期 /时间”字段的格式,如表 4 - 4中所示。长日
期和时间格式不会改变,在Access 2000 默认列中所示的格式采用的是基于标准 Wi n d o w s短日
期格式的形式,m / d / y y。
表4-4 Access 2000 默认格式与四位数年份格式的比较
表4-3 Access 数字、日期/时间,和Ye s / N o数据类型的标准显示格式
数 据 类 型 格 式 外 观
数字 普通数字 1 2 3 4 . 5
货币 $1 234.50
固定 1 2 3 4 5
标准 1 234.50
百分比 0 . 1 2 3 4 = 1 2 . 3 4 %
科学记数 1 . 2 3 E + 0 3
日期/时间 普通日期 3/1/99 4:00:00 PM
长日期 T h u r s d a y,March 1,1999
中日期 1 - M a r- 1 9 9 9
短日期 3 / 1 / 1 9 9 9
长时间 4:00:00 PM
中时间 04:00 PM
短时间 1 6 : 0 0
Ye s / N o 是/否 Ye s或者N o
真/假 Tr u e或F a l s e
开/关 O n或O ff
无 1或0
M i c r o s o f t的2 0 0 0年 ( Y 2 K )兼容性特征在Access 2000的 “选项”对话框中“常规”页下增
加了一个新的设置选项。使用四位数年份格式框下有两个复选框—“本数据库”和“所
有数据库”。标记任何一个复选框都将改变“日期 /时间”字段的格式,如表 4 - 4中所示。长日
期和时间格式不会改变,在Access 2000 默认列中所示的格式采用的是基于标准 Wi n d o w s短日
期格式的形式,m / d / y y。
表4-4 Access 2000 默认格式与四位数年份格式的比较
2. Access表中的Null 值
A c c e s s表中的字段可以具有一个特定的值 N u l l,这个术语对于基于P C的数据库管理系统的
大多数用户来说是一个新的概念。 Null 值指示该字段根本就没有包含任何数据。 N u l l与数值0
不同,它也不等价于包含一个或者多个空格的空白文本。 N u l l与空字符串相似但是并不完全相
同 (零长度的字符串,通常叫做空字符串 )。现在,与N u l l最接近的同义词是没有输入 ( N u l l被
设置为等宽粗体,因为它是V B A中的一个保留字)。
Null 值在决定某个字段中是否有值输入的情况下是十分有用的,尤其是对于数值字段零值
有效的情况下更是如此。直到 A c c e s s出现,在P C数据库管理器上使用 Null 值的能力一直局限
在客户/服务器数据库系统的表中,例如 Microsoft SQL Server。在后面的“自定义显示格式”
和“设置字段默认值”两节中将使用Null 值。
3. 自定义显示格式
在A c c e s s中显示非标准格式的格式时,你必须创建一个自定义的格式。你可以将除了 O L E
对象之外的任何字段类型设置为自定义显示格式,方法是创建一个图像格式,结合一组特殊的
占位符(参见表4 - 5 )。图4 - 9所示的例子是用于日期和时间的自定义格式。如果你键入 mmmm dd
“,”yyyy - hh:nn作为格式,日期 0 3 / 0 1 / 9 9将显示为March 1,1999 - 00:00。
需要特别指出的是,表4 - 4使用的示例数字值为1 2 3 4 . 5。斜体用于区分你键入的占位符和其
他文本。结果显示使用的是等宽字体。
图4-9 在“格式”文本框中输入的自定义日期和时间格式
表4-5 创建自定义显示格式时使用的占位符
占 位 符 功 能
空字符串 在显示数字时不使用任何格式。删除“字段属性”窗格中“格式”字段中值,输入一个
空的字符串
0 如果在该位置上有一个数字存在,则显示数字,否则显示 0。你可以使用0占位符,显示
以零开头的整个数值和小数部分尾部的0。0 0 0 0 0 . 0 0 0将显示0 1 2 3 4 . 5 0 0
# 如果在该位置上有一个数字存在,则显示该数字,否则显示 0。#占位符与0相似,只是
开头的0和结尾处的0不显示。# # # # # . # # #将显示1 2 3 4 . 5
第4章 使用Access数据库和表 85 下载(续)
占 位 符 功 能
$ 在相应的位置上显示一个$符。$ # # # , # # # . 0 0将显示$ 1 , 2 3 4 . 5 0
. 在0和#占位符串中的指定位置显示一个小数点。# # . # #将显示1 2 3 4 . 5
% 将该值乘以1 0 0,在由0和#占位符指定的位置添加一个 %。# 0 . 0 0 %将把0 . 1 2 3 4 5显示为
1 2 . 3 5 % ( 1 2 . 3 4 5四舍五入为1 2 . 3 5 )
, 在0和#占位符串中添加千分隔符。# # #,# # #,# # # . 0 0显示1 234.50
E- e- 只适用于负指数情况,以科学计数法表示给定的值。 # . # # # # E - 0 0将显示 1 . 2 3 4 5 E 0 3。
0 . 1 2 3 4 5显示为1 . 2 3 4 5 E - 0 1
E+ e+ 适用于正负指数情况,以科学计数法表示给定的值。 # . # # # # E + 0 0将显示1 . 2 3 4 5 E + 0 3
/ 用于格式化日期值,分隔年月日。键入m m / d d / y y y y将显示0 3 / 0 6 / 1 9 9 9。(你可以将斜杠替
换为-从而显示0 6 - 0 3 - 1 9 9 9格式)
m 指定日期中月的显示格式。m显示1,m m显示0 1,m m m显示J a n,而m m m m显示J a n u a r y
d 指定日期中日的显示格式。d显示1,d d显示0 1,d d d显示M o n,而d d d d显示M o n d a y
y 指定日期中年的表示格式。y y显示9 9,y y y y显示1 9 9 9
: 在时间格式中用于分隔小时,分钟和秒。h h : m m : s s显示0 2 : 0 2 : 0 2
h 指定如何显示时间中的小时。h显示2;h h显示0 2。如果你使用了A M / P M占位符, h或h h
将显示4 PM来表示1 6 : 0 0
n 时间中分钟的占位符。n显示1;n n显示0 1;h h n n“小时”将显示1 6 0 0小时
s 时间中秒的占位符。s显示1;s s显示0 1
A M / P M 以1 2个小时带A M / P M后缀来表示时间。h:n n A M / P M将显示4:0 0 P M。另外可选的格式
还有a m / p m,A / P,a / p
@ 用于指示在文本或备注字段中的相应位置需要一个字符。你可以使用 @在文本字段中格
式化电话号码。如@ @ @ - @ @ @ - @ @ @ @或(@ @ @)@ @ @ - @ @ @ @
& 用以指示在文本或者备注字段中某个字符是可选的
> 将字段中所有的文本字符都改为大写
< 将字段中所有的文本字符都改为小写
* 将*号后面的字符用做字段中空白处的填充字符,“A B C D”* x在8字符字段中将显示为
A B C D x x x x
“格式”属性是A c c e s s中少数几个既可以从选项列表进行选择也可以通过键盘进行输入的
例子之一。格式使用的是一个真正的下拉组合框 ;你只能够从所列出的选项中进行选择的列表
称为下拉列表。你不需要在格式文本框中输入如图 4 - 9所示的包围逗号和空格的引号(mmmm dd
“,”yyyy - hh:nn),因为A c c e s s将为你做有关的一切。逗号是非标准格式的日期分隔符 (而是数
字字段的标准分隔符 )。当你在字段属性窗口中创建非标准的格式化字符时, A c c e s s会自动地
将它们包含在双引号中。
当你改变了格式或者任何其他属性字段,然后将“数据
表”视图改为运行模式,查看工作的最终效果时,你必须首
先保存更新后的表设计。如图 4 - 1 0所示的确认对话框将请你
确认任何的设计改动。

如果你将自定义格式串mmmm dd“,”yyyy - hh:nn (参
见图4 - 9 )应用到E m p l o y e e s表的Birth Date字段,Birth Date字
段内容将如图4 - 11所示。例如,Nancy Davolio的出生日期为December 08,1968 - 00:00。B i r t h
86 第一部分 Access基础 下载
图4-10 改变字段格式后的
确认对话框D a t e字段的最初形式为Medium Date,Hire Date字段使用的也是这种格式。
你需要扩展Birth Date字段的宽度使
之能够容纳 Long Date 格式中的附加字
符。你可以通过向右拖动字段名称标题
的右侧垂直条来增加字段的宽度,从而
可以显示整个字段。Access 显示的出生
时间为0 0 : 0 0,因为Birth Date字段所有
输入项的小数部分决定了时间为0。
在下面这个例子中,对包含在圆括
号中的负数进行了格式化,并以文本替
代了N u l l条目:
$ # # # , # # # , # # 0 . 0 0 ; $ ( # # # , # # # , # # 0 . 0 0 ) ; 0 . 0 0 ;“No Entry Here”
条目1 2 3 4 5 6 7 . 8 9,- 1 2 3 4 5 6 7 . 8 9,0和Null 默认值看上去如下:
$ 1 , 2 3 4 , 5 6 7 . 8 9
$ ( 1 , 2 3 4 , 5 6 7 . 8 9 )
0 . 0 0
No Entry Here
4.6.3 使用输入掩码
Access 2000允许将“文本”字段中的输入限定为数字或者对输入的数据进行其他形式的格
式化。Access 2000的“输入掩码”属性可用于格式化电话号码、社会保险号、 Z I P号和其他类
似的数据。表 4 - 6列出了在字符串中可以用于“文本”数据类型字段中输入掩码的占位符。
表4-6 创建输入掩码的占位符
占 位 符 功 能
空字符串 没有输入掩码
0 必须的数字( 0 - 9 )或符号( + / - )
9 数字( 0 - 9 )为可选的(如果没有输入,则为空格)
# 数字( 0 - 9 )或空格为可选的(没有输入则为空格)
L 要求为字母( A - z )
? 不要求为字母( A - z ) (如果没有输入则为空格)
A 要求为字母( A - z )或者数字( 0 - 9 )
a 可以为字母( A - z )或者数字( 0 - 9 )
& 必须为字母或数字
C 可以为任何字母或数字
. , : ; / ( ) 小数点、千、日期、时间和其他特殊的分隔符
> 将右边所有的字符全部转换为大写
< 将左边所有的字符全部转换为大写
! 从左向右填写掩码
\ 置于其他占位符之前以便在格式化字符串中包含其他文字符号
例如,键入 \ ( 0 0 0“) ”0 0 0 \ - 0 0 0 0作为“输入掩码”属性的值将导致在表的电话号码
单元格中出现如下的输入形式: ( _ _ _ ) - 。键入 0 0 0 - 0 0 \ - 0 0 0为社会保险号创建的掩
第4章 使用Access数据库和表 87 下载
图4-11 日期格式比较码为 - - 。当你键入电话号码或者社
会保险号时,你键入的数字将替代那些下划线。
注意 位于圆括号或者连字符之前的\ 字符 (常称转
义字符) 说明其后面的字符是一个书面符号,而不
是格式字符。如果格式包含空格,则需要将空格和
相邻的书面字符包含在双引号中。
Access 2000 包含一个“输入掩码向导”,它
在你转向“文本”或者“日期 /时间”字段数据类
型的输入掩码字段并单击文本框最右端的生成器
按钮时将会打开。图 4 - 1 2所示为“输入掩码向导”
的打开对话框,它提供了 1 0种常见的输入掩码格
式供你挑选。


本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号