在 Microsoft Access 97 和早期版本中,如果重命名数据库中的对象,则可能会破坏基于此对象的所有对象。例如,如果重命名表格中的字段,则依赖于此字段中的数据的所有文本框、查询和其他对象都将突然停止工作或返回错误结果。由于很难确定有多少对象以及哪些对象绑定至某个字段,因此在重命名对象之前,需要做大量的工作以避免出现问题。在下面的示例中,数据库多处使用了“公司名称”字段 ( 在表格中, 作为查询中的字段, 作为窗体上的文本框, 作为报表上的分组标题, 作为数据访问页上的绑定控件)。考虑重命名表中的“公司名称”字段对各种对象造成的影响。
从 Access 2000 开始增加了“名称自动更正”功能,当您重命名 Access 数据库中的窗体、报表、表格、查询、字段、文本框或其他控件时,它可以自动更正所产生的一般副作用。“名称自动更正”功能在 Access 2002 中得到了增强,从而修正了早期版本中的缺陷。
注释
●“名称自动更正”不适用于数据访问页。 ●在新数据库中,“跟踪名称自动更正信息”选项和“执行名称自动更正”选项默认打开。 ●“名称自动更正”功能不同于“自动更正”功能。“名称自动更正”功能更正对象间的引用。“自动更正”功能会更正经常拼错的词或短语。
“名称自动更正”更正什么
“名称自动更正”功能更正重命名窗体、报表、表、查询或窗体和报表上的控件时所产生的不一致。如果您在“名称自动更正”关闭时创建窗体或其他对象,然后打开“名称自动更正”,Access 将更正您继续处理对象时产生的所有新的不一致。如果打开“名称自动更正”时其中一个对象已经出现重命名错误,则必须手动更正对该对象的引用。对于包含 Microsoft Visual Basic 代码的窗体或报表,Access 修复对报表的引用,但不修复对 Visual Basic 项目中的对象的引用。
除上述功能外,Access 2002 的“名称自动更正”也支持对以下内容的更改:
●报表的“排序和分组”对话框中的字段名。 ●绑定到 SQL 语句中的列的控件。例如,使用 SQL 语句作为记录源的报表,绑定控件的字段名在该报表中改变。 ●字段名在更新或追加查询中更改。 ●具有大量列 (>150) 的查询中的最后一列。
“名称自动更正”不能更正什么
“名称自动更正”不能更正以下内容中的引用:
●Microsoft Access 项目。 ●复制的数据库。复制数据库时,Access 将关闭“名称自动更正”。您不能在数据库的“设计主控”或复本中打开“名称自动更正”。 ●转换的数据库(请参阅下面的附加信息)。 ●数据访问页、宏和模块。 ●打开特定数据库对象的桌面快捷方式。 ●无效的 SQL 语句。 ●Microsoft Visual Basic 代码。 ●表或字段已经在前端/后端数据库的后端中重命名时的链接表。 ●表、查询、窗体和报表的 Filter 或 OrderBy 属性。 ●此外,“名称自动更正”也不能更正对工具栏或菜单中的宏的引用,包括菜单和工具栏属性以及为宏名称设置的事件属性。
“名称自动更正”如何工作
所有“名称自动更正”选项均可以通过“工具”菜单中的“选项”对话框的“常规”选项卡进行访问,如下图中的突出显示部分。
打开“跟踪名称自动更正信息”选项(位于“工具”菜单项下的“选项”对话框中的“常规”选项卡上)时,Access 将打开、检查并保存数据库中的每一个对象(表、查询、窗体、报表等)。这使得 Access 可以创建对象及其附属内容的列表(也称为名称映射)。这样,无论何时打开窗体或其他对象,如果选择了“执行名称自动更正”选项,Access 都将自动查找并更正窗体和窗体所依赖的其他对象之间的不一致。例如,如果打开与表格绑定的窗体,Access 将比较表和窗体的日期/时间戳。如果不同,Access 将执行“名称自动更正”以检测并更正表格中字段名和窗体上控件名的差异。如果选择了“记录名称自动更正的更改情况”选项,则修复名称错误时,Access 还将创建数据库的更改日志。这些更改保存在一个名为 AutoCorrect Log 的表格中。
使用“名称自动更正”的要求
要利用“名称自动更正”功能,您必须能够保存对窗体、报表或“名称自动更正”所更正的其他对象所做的更改。如果您有权修改对象的设计、对数据库具有写权限或具有独占进行更改的权限,便可以保存对象的更改。如果您不能保存对象,则关闭对象时将放弃所做的更正。每次打开对象时,“名称自动更正”都要进行更改。 但是,只有对设计具有修改权限的人打开并保存对象时,才能够保存更改。如果启用了“名称自动更正”功能,而您不具有适当的权限或进行更改的独占权限,则打开对象时,可能会遇到延迟。有关在 Access 数据库中设置权限或独占打开数据库的详细信息,请参阅 Access 帮助。
当通过编程为特定对象启用“名称自动更正”时,并不执行创建“名称映射”的逻辑。例如,当通过 SetOption 方法,在代码中启用“名称自动更正”时,并不创建名称映射。您应当先在“工具”菜单的“选项”对话框中启用“名称自动更正”,然后通过编程方式为对象打开或关闭该功能。
如何启用“名称自动更正”
对于现有的数据库对象
1、在“工具”菜单上,单击“选项”。 2、在“常规”选项卡中,执行以下一个或多个操作: ●要使 Microsoft Access 维护运行“名称自动更正”所需的信息,而不执行任何操作,请选择“跟踪名称自动更正信息”复选框。 ●要使 Access 在数据库中发生名称更改时运行“名称自动更正”,请选择“执行名称自动更正”复选框。 ●要使 Access 保存每次运行“名称自动更正”时的更改日志,请选择“记录名称自动更正的更改情况”复选框。Access 将更改保存在一个名为“名称自动更正日志”的表格中。每个更改都是“名称自动更正日志”表格中的一条记录。 3、要为 Access 数据库中现有的表、查询、窗体或报表启用“名称自动更正”,请在“设计”视图中打开它,然后保存并关闭。
对于导入或新建的数据库对象
注意,如果在“名称自动更正”关闭时导入或创建数据库对象,Access 将没有足够的信息为该对象启用“名称自动更正”。要为对象启用“名称自动更正”,请执行以下操作:
1、在“工具”菜单上,单击“选项”,然后单击“常规”选项卡。 2、选择“跟踪名称自动更正信息”和“执行名称自动更正”复选框。 3、如果您需要 Access 在修复名称错误时更改数据库的日志,请同时选择“记录名称自动更正的更改情况”复选框。 4、在“设计”视图中打开数据库对象,然后保存并关闭。
对于转换的 Access 数据库
在 Access 2000 或更高版本中创建的数据库内,默认启用了“名称自动更正”。要在转换的 Access 数据库中启用“名称自动更正”,请执行以下步骤:
1、在“工具”菜单上,单击“选项”,然后单击“常规”选项卡。 2、选择“跟踪名称自动更正信息”和“执行名称自动更正”复选框。 3、如果您需要 Access 在修复名称错误时更改数据库的日志,请同时选择“记录名称自动更正的更改情况”复选框。 4、在“设计”视图中打开每个表、查询、窗体和报表,然后保存并关闭。 |