本文介绍如何修改或更改应用于 Access 数据库中表字段的数据类型。
本文内容
了解数据类型
在首次设计和生成数据库时,会计划一个或多个表,为每个表计划字段(列),并为每个字段设置数据类型。 例如,如果需要存储日期和时间,则将字段设置为“日期/时间”数据类型。 如果需要存储名称和地址,请将一个或多个字段设置为“短文本”数据类型,依此类说。
Access 提供了许多不同数据类型,每种类型具有特定用途。 有关各种 Access 版本的所有受支持的数据类型的完整列表,请参阅 Access 桌面数据库的数据类型和数据类型和字段属性简介。
有关创建和使用查阅字段的详细信息,请参阅 创建或删除多值字段一文。
最后,数据类型可提供数据验证的基本形式,因为它们可帮助确保用户在表字段中输入正确类型的数据。 例如,不能在设置为仅接受数字的字段中输入文本。
更改数据类型
在按照以下步骤进行操作之前,请记住,更改数据类型可能会截断(剪切)字段中的部分或全部数据,并且在某些情况下可能会彻底删除数据。 有关更改数据类型时 Access 如何更改数据的信息,请参阅本文后面的更改数据类型的限制部分。
注意: 在 Access 中,可通过数据表视图或设计视图为表字段设置数据类型。 本部分中的步骤介绍如何在这两种视图中设置数据类型。 在设计视图中设置数据类型时,你将看到额外的选项“查阅向导”。 此选项实际上并非数据类型。 可以使用“查阅向导”创建查阅字段,这些字段会将外键字段链接到其他表。 默认情况下,Access 会将查阅字段设置为“数字”数据类型。
在数据表视图中更改数据类型
-
在导航窗格中,找到并双击要更改的表。
Access 将在数据表视图中打开该表。
-
选择要更改的字段(列)。
-
在“ 表字段 ”选项卡上的 “属性” 组中,单击“ 数据类型”旁边的下拉列表中的箭头,然后选择数据类型。
-
保存所做的更改。
在设计视图中更改数据类型
-
如果表在数据表视图中打开,右键单击表的文档选项卡,然后单击“设计视图”。
或
如果未打开表,在“导航窗格”中,右键单击想要更改的表,然后在快捷菜单上单击“设计视图”。
-
找到想要更改的字段,然后从“数据类型”列中的列表选择新的数据类型。
-
保存所做的更改。
更改数据类型的限制
通常,可以更改所有字段的数据类型,除了:
-
已启用复制 ID 属性的数字字段。
-
OLE 对象字段。
-
附件字段。
此外,如果字段包含数据,则还可以更改大多数数据类型。 不过,Access 可能会截断或删除某些数据,或者根本不允许转换,具体取决于原始数据类型和要使用的新数据类型。
下表列出了可在 Access 中执行的可能的数据类型转换,并说明了 Access 可能对转换施加的任何限制。
转换为此类型 |
原始类型 |
更改或限制 |
---|---|---|
短文本 |
长文本 |
Access 删除除前 255 个字符以外的所有字符。 |
数字 |
无限制。 |
|
日期和时间 |
日期/时间没有限制。 不允许延长日期/时间。 |
|
货币 |
无限制。 |
|
自动编号 |
无限制。 |
|
是/否 |
值 -1(“是/否”字段中的“是”)转换为“是”。 值 0(“是/否”字段中的“否”)转换为“否”。 |
|
超链接 |
Access 截断长度超过 255 个字符的链接。 |
|
长文本 |
短文本 |
无限制。 |
数字 |
无限制。 |
|
日期和时间 |
日期/时间没有限制。 不允许延长日期/时间。 |
|
货币 |
无限制。 |
|
自动编号 |
无限制。 |
|
是/否 |
值 -1(“是/否”字段中的“是”)转换为“是”。 值 0(“是/否”字段中的“否”)转换为“否”。 |
|
超链接 |
无限制。 |
|
数字 |
短文本 |
短文本必须包含数字和有效的货币和小数分隔符。 “短文本”字段中的字符数必须在“数字”字段设置的大小范围内。 有关数字字段大小的详细信息,请参阅 创建或删除数字或货币字段一文。 |
长文本 |
“长文本”字段必须仅包含文本和有效货币和小数分隔符。 “长文本”字段中的字符数必须位于“数字”字段设置的大小范围内。 有关数字字段大小的详细信息,请参阅 创建或删除数字或货币字段一文。 |
|
数字,但具有不同的字段大小或精度 |
值不得大于或小于新字段大小可以存储的值。 更改精度可能导致 Access 对某些值进行四舍五入。 |
|
日期和时间 |
日期/时间: 可以转换的日期取决于数字字段的大小。 请记住,Access 将所有日期存储为序列日期,并将日期值存储为双精度浮点整数。 在 Access 中,1899 年 12 月 30 日是日期 0。 在 1899 年 4 月 18 日到 1900 年 9 月 11 日范围以外的日期超出了字节字段的大小。 在 1810 年 4 月 13 日到 1989 年 9 月 16 日范围以外的日期超过了整型字段的大小。 若要容纳所有可能的日期,请将数字字段的“字段大小”属性设置为“长整型”或更大值。 有关串行日期以及 Access 如何使用和存储日期值的详细信息,请参阅 设置日期和时间字段格式一文。 扩展日期/时间: 不允许。 |
|
货币 |
值不得超过(或小于)为该字段设置的大小限制。 例如,只有当值大于 255 但不超过 32,767 时,才能将货币字段转换为整型字段。 |
|
自动编号 |
值必须在为该字段设置的大小限制范围内。 |
|
是/否 |
“是”值转换为 -1。 “否”值转换为 0。 |
|
超链接 |
不适用。 |
|
日期/时间 |
短文本 |
原始文本必须是可识别的日期或日期-时间组合。 例如,2006 年 1 月18 日。 |
长文本 |
原始文本必须是可识别的日期或日期-时间组合。 例如,2006 年 1 月18 日。 |
|
数字 |
值必须在 -657,434 和 2,958,465.99998843 之间。 |
|
日期/时间已延长 |
无限制。 |
|
货币 |
值必须在 -¥657,434 与 ¥2,958,465.9999 之间。 |
|
自动编号 |
值必须大于 -657,434 但小于 2,958,466。 |
|
是/否 |
值 -1(“是”)转换为 1899 年 12 月 29 日。 值 0(“否”)转换为午夜 (12:00:00 AM)。 |
|
超链接 |
不适用。 |
|
日期/时间已延长 |
短文本 |
不允许。 |
长文本 |
不允许。 |
|
数字 |
不允许。 |
|
日期/时间 |
秒小数部分丢失,如果年份超出 Date/Time 支持的范围,则删除该值。 有关详细信息,请参阅使用日期/时间扩展数据类型。 |
|
货币 |
不允许。 |
|
自动编号 |
不允许。 |
|
是/否 |
不允许。 |
|
超链接 |
不适用。 |
|
货币 |
短文本 |
文本必须由数字和有效分隔符组成。 |
长文本 |
文本必须由数字和有效分隔符组成。 |
|
数字 |
无限制 |
|
日期和时间 |
日期/时间:没有限制,但 Access 可以舍入值。 已延长日期/时间:不允许。 |
|
自动编号 |
无限制 |
|
是/否 |
值 -1(“是”)转换为 $1。 值 0(“否”)转换为 0$。 |
|
超链接 |
不适用。 |
|
自动编号 |
短文本 |
如果“自动编号”字段充当主键,则不允许转换。 |
长文本 |
如果“自动编号”字段充当主键,则不允许转换。 |
|
数字 |
如果“自动编号”字段充当主键,则不允许转换。 |
|
日期和时间 |
日期/时间:如果“自动编号”字段充当主键,则不允许。 已延长日期/时间:不允许。 |
|
货币 |
如果“自动编号”字段充当主键,则不允许转换。 |
|
是/否 |
如果“自动编号”字段充当主键,则不允许转换。 |
|
超链接 |
不适用。 |
|
是/否 |
短文本 |
原始文本只能由“是”、“否”、“True”、“False”、“开”和“关”组成。 |
长文本 |
原始文本只能由“是”、“否”、“True”、“False”、“开”和“关”组成。 |
|
“数字” |
零或 Null 转换为“否”,其他所有值转换为“是”。 |
|
日期和时间 |
日期/时间:Null 或上午 12:00:00 转换为“否”,所有其他值转换为“是”。 已延长日期/时间:不允许。 |
|
货币 |
零和 Null 转换为“否”,其他所有值转换为“是”。 |
|
自动编号 |
Access 将所有值转换为“是”。 |
|
超链接 |
不适用。 |
|
超链接 |
短文本 |
如果原始文本包含有效的 Web 地址,例如 adatum.com、www.adatum.com 或 http://www.adatum.com,则 Access 会将文本转换为超链接。 Access 将尝试转换其他值,这意味着你会看到带下划线的文本,并且在你指向链接时,鼠标光标会发生变化,但链接无效。 文本可以包含任何有效的 Web 协议:http://、gopher://、telnet://、ftp:// 和 wais:// 等。 |
长文本 |
请参阅上一条。 适用同样的限制。 |
|
数字 |
如果数字字段是关系的一部分,则不允许转换。 如果原始值采用有效的 IP 地址形式(以句点分隔的四组数,每组三个数字:nnn.nnn.nnn.nnn),并且数字恰好与某个 Web 地址一致,则转换将产生一个有效的链接。 否则,Access 会在每个值的前面追加 http://,所得到的链接将无效。 |
|
日期/时间 |
Access 会在每个地址前面追加 http://,但所得到的链接几乎永远不会有效。 |
|
货币 |
Access 会在每个值前面追加 http://,但与日期一样,所得到的链接几乎永远不会有效。 |
|
自动编号 |
如果自动编号字段是关系的一部分,则不允许转换。 Access 会在每个值前面追加 http://,但所得到的链接几乎永远不会有效。 |
|
是/否 |
Access 将所有“是”值转换为 -1,将所有“否”值转换为 0,并在每个值前面追加 http://。 所得到的链接无效。 |