当设计自己的数据库时,常常会发现有些时候你必须为了表中字段的顺序、数据类型或者 表之间的关系而改变你最初的选择。在测试过程中向表中添加大量的记录的首要原因便是尽可 能在把数据库交付日常使用之前发现某些需要改变的地方。 你可以改变格式、有效性规则和文本、文本字段的长度以及表中其他的琐碎项目,方法是 切换到设计模式,选择要修改的字段,在属性框中进行所需要的改变。但是,改变数据类型可 能会引起数据的丢失,所以在改变之前,有必要先阅读一下下一节“改变字段数据类型和大小” 中的内容。如果你已经输入了大量的数据,那么改变关系将是一件很麻烦的事情,所以有关这 个主题的讨论也在后面单设了一节,请参见“改变表之间的关系” 注意 名称自动更正是Access 2000的一个新增功能。在以前的版本中对一个数据库对象重新命名 时需要手工搜索数据库中所有的对象以改变所有对这个重新命名过的对象的引用。“名称自动更 正”功能将为你处理这些更正工作;当你打开一个数据库对象时,A c c e s s将扫描和更正存在的差 异。Access 2000创建的新数据库在默认情况下这个功能时打开的。而从早期版本转换而来的数 据库则需要你启动“名称自动更正”功能,选择“工具”,“选项”,然后在“选项”对话框的 “常规”页下,标记“跟踪名称自动更正信息”和“执行名称自动更正”两个复选框。 4.11.1 重新安排表中字段的顺序 如果你在“数据表”视图中键入历史数据,你或许会发现各项的顺序不是最优的。例如你 可能在输入数据时使用的是从上到下、从左到右的打印形式,但是,与表中相应的字段顺序并 不能完全对应。A c c e s s对改变表中字段的顺序提供了强有力的支持,你只需拖动字段并将之放 在适当的地方即可。当关闭该表时,你可以决定是否使布局的改变永久化,你也可以只是临时 改变其布局。 遵循如下步骤,重新安排Personnel Actions表中的字段: 1) 单击“数据表视图”按钮。重新安排字段的顺序是你在 A c c e s s的“数据表”视图中可以 实现的唯一的表设计的改变。 2) 单击你想要移动的字段名字按钮。这个操作将会选择字段名字按钮和该字段所有的数据 单元格。 3) 当将鼠标放在字段名称按钮之上时,保持鼠标的左按钮不放。鼠标指针将变为拖放符号 形状,并且一个较粗的垂直条出现在该字段的左边位置。图 4 - 3 6所示为将p a S c h e d u l e d D a t e字段 移到了紧靠在p a E ff e c t i v e D a t e字段的位置。 4) 将所选字段的垂直条移动到新的位置后释放鼠标按钮。该字段便出现在这个新的位置上, 如图4 - 3 7所示。 5) 当关闭Personnel Actions表时,你将会看到早已熟悉的“保存改变”消息框。如果你想 使这个改变成为永久性的,单击“是”;否则,单击“否”。 在“设计”视图中从新摆放字段时,单击你想移动的字段行的选择按钮,然后将该行拖放 到一个新的位置即可。只改变表中字段的位置不会改变字段的其他任何属性。 104 第一部分 Access基础 下载图4-36 在“数据表”视图中将一个子段拖放到一个新的位置 图4-37 paScheduledDate字段被拖放到一个新的位置 4.11.2 改变字段数据类型和大小 随着你的数据库设计的完善或者如果你从另一个数据库、电子数据表或者文本文件导入表, 你或许会改变某个字段的数据类型。如果你要导入表,数据类型将由 A c c e s s在导入过程中自动 地选取,但是所选取的类型可能并非你所希望的,尤其是碰到数字字段的时候。第 7章将讨论 如何从其他应用导入和导出表和数据。改变字段属性的另一种情况是,改变固定长度文本字段 中字符的个数,以容纳那些比预期长度要长的输入或者将可变长的文本字段转换为固定长度的 字段。 警告 在改变包含有大量数据的表的字段数据类型之前,要先通过拷贝或者将它导出到备份的 A c c e s s数据库进行备份。如果在你改变字段的数据类型时不小心丢失了表中部分数据 (例如小数 部分),便可以将备份表导入到当前数据库中。第 7章将介绍导出A c c e s s表的简单而快速的过程。 第4章 使用Access数据库和表 105 下载在创建了一个备份数据库文件之后,你便可以将一个表拷贝到 Windows 剪贴板,然后再将该表 粘贴到备份数据库了。在后面的“复制和粘贴表”一节中我们将详细讨论向剪贴板复制表和从 剪贴板粘贴表。 1. 数字字段 在绝大多数情况下将数据类型改变为一个需要更多存储字节空间的类型都是安全的。你不 会牺牲数据的精确度。将一个数据类型从字节改变到整型、再到长整型、到单精度型、最后到 双精度型,将不会影响到数据的值,因为每个改变,从长整数到单精度型除外,都将需要用更 多的字节空间来存储数据值。从长整数到单精度、从单精度到货币的转换由于牵涉到的字节数 量相同,只是在指数环境中降低了数据的精度而已。当使用极大或者极小的小数时,可能会发 生意外,例如在科学和工程计算领域。 另一方面,如果将数据类型改变到用较少的数据字节来存储它们, A c c e s s可能会截取你的 数据。如果你从定点格式(货币)或者浮点格式 (单精度型或者双精度型)改变为字节、整型或者 长整型,则数据中的任何小数部分都将被截掉。截断意味着减少某数字的位数以适应所选择的 新字段大小属性。例如,如果你将一个数字数据类型从单精度型改变为货币型,你可能会损失 掉单精度型数据的第五、第六和第七为小数 (如果存在这些位的话),因为单精度型提供了七位 小数部分,而货币型只提供了4位。 不能把任何的字段类型转换为自动编号类型的字段。只能把自动编号字段用作记录的计数 器;在自动编号字段输入一个新值的唯一方法便是追加新的记录。不能编辑自动编号字段。当 在A c c e s s中删除一个记录时,编号高的记录的自动编号值也不会减 1。连续的Access 自动编号 字段值是按照记录被输入的顺序赋给每个记录的,而并非使用主键的次序。 2. 文本字段 你可以将文本字段转换为备注字段,这时 A c c e s s不会截取你的文本。但是将备注字段转换 为文本字段时,超出文本字段 2 5 5个字符限制以外的字符都将被丢弃。与此类似,如果将一个 可变长的文本字段转换为一个固定长度的文本字段,并且在有些记录中包含的字符串超出了所 选大小时,A c c e s s将对这些字符串进行截取处理。 3. 在数字、日期和文本字段数据类型之间转换 A c c e s s提供了数字、日期和文本字段数据类型之间的许多的转换。从数字或者日期转换为 文本字段数据类型将不再遵守你指定给原始数据类型的格式属性。数字将以常规数字格式,日 期将使用短日期格式进行转换。A c c e s s在将合适的文本字段转换为数字数据类型时,在使用的 方法上显得颇具智能。例如在转换时,它可以接受美元符、逗点和小数,但是将忽略掉结尾处 的空格。A c c e s s可以将如下文本格式的日期和时间转换为内部的日期 /时间值,在转换之后你 便可以用你所期望的任何格式进行表示了: 1/4/1999 10:00 AM 0 4 - J a n - 9 9 January 4 1 0 : 0 0 1 0 : 0 0 : 0 0 4.11.3 改变表之间的关系 在表之间添加新关系的过程相当直观,但是改变关系却有可能需要改变数据类型以使得相 关的字段具有相同的数据类型。改变两个表之间的关系时,所使用的步骤如下: 106 第一部分 Access基础 下载1) 关闭关系所涉及到的表。 2) 如果“数据库”窗口处于非活跃状态,单击“显示数据库窗口”按钮,或者选择“窗口”、 “1数据库”。 3) 单击工具栏上的“关系”按钮或者选择“工具”,“关系”,显示“关系”窗口。 4) 单击连接到你想改变其数据类型的字段的连接线。当你选择该连接线时,该线将变得更 黑(更粗),如图4 - 3 8所示。 图4-38 选择一个关系进行删除或者修改 5) 按下“删除”键,清除现有的关系。当出现要求你确定要删除的消息框后,单击“是”。 6) 如果你改变组成或者作为主表主键成员的字段的数据类型,同时也将删除与该字段相关 的主表和其他表之间的所有其他关系。 7) 改变表中字段的数据类型,使得在新的关系中数据类型能够相互匹配。 8) 使用前面“建立表之间的关系”一节中介绍过的过程重建该关系。