全部显示

转换 Microsoft Access 表、窗体和报表

   

由 Microsoft Access 2002 引入的某些更改可能会影响 1.x 或 2.0 版应用程序的行为。下面的章节将提供有关这些更改的详细信息。

索引和关系

Microsoft Access 表最多可以包含 32 个索引。非常复杂的表(这些表是许多关系的一部分)可能会超过这个索引限制,因此无法转换包含这些表的数据库。3.6 版的 Microsoft Jet 数据库引擎根据表之间的关系的双方创建索引。如果数据库没有转换,可删除某些关系,然后重新尝试转换数据库。

组合框的 LimitToList 属性

在 Microsoft Access 2002 中,当 LimitToList 属性设为 True (-1) 时,组合框可接受 Null 值,不论列表是否包含 Null 值。而在 2.0 版中,除非列表包含 Null 值,否则其 LimitToList 属性设为 True 的组合框将不接受 Null 值。如果要通过使用组合框避免用户输入 Null 值,可将表中字段的 Required 属性设为 Yes

OLE 对象的菜单和现场激活

当现场激活 OLE 对象时,为了使用附加的功能,在激活 OLE 服务器时,某些菜单命令可能已经移到未被替换的菜单上。

更改不会影响这个已转换的应用程序中的宏,该宏当激活某组件时使用 DoMenuItem 操作来执行 2.0 版的菜单命令。2.0 版本的命令对应于 Microsoft Access 2002 中相应的命令。

引用只读窗体上的控件

在 Microsoft Access 2002 中,不能使用表达式引用绑定到空记录源的只读窗体上控件的值。在旧版本中,表达式返回 Null 值。在引用只读窗体上的控件之前,应该确定窗体的记录源中包含记录。

日期字段和数据输入项

如果在窗体或表数据表上“日期”类型字段中输入 3/3,Microsoft Access 2002 将自动填入当前的年份。不过如果在同样的字段中输入 3/3/,Microsoft Access 将返回错误消息。必须省略日期最后的斜线,这样 Microsoft Access 才能将日期转换为正确的格式。

使用“命令按钮向导”创建的按钮

如果在 2.0 或 7.0 版的 Microsoft Access 中,使用“命令按钮向导”生成调用其他应用程序的代码,应该删除该按钮,并使用 Microsoft Access 2002 的“命令按钮向导”来重新创建该按钮。

窗体和报表类模块

在 Microsoft Access 的旧版本中,即使在对象之后没有代码,FormReport 对象仍具有相关的类模块。在 Microsoft Access 2002 中,可以将窗体或报表的 HasModule 属性设为 False。当将“内含模块”属性设为“否”时,因为窗体或报表将不再具有相关的类模块,所以将占用较少的磁盘空间,并且可以更快地加载。

转换后的 2.0 版报表具有不同的页边距

当试图打印或预览从 Microsoft Access 2.0 转换的 Microsoft Access 2002 报表时,如果报表的某些页边距设为 0,可能会遇到问题。当转换 Microsoft Access 2.0 报表时,页边距不能设为 0,而应设为对默认打印机有效的最小页边距。这将避免报表在打印机的不可打印区域打印数据。

要解决这个问题,可减少报表中的列宽度、列间距或列数,使得列宽度加上默认页边距的宽度等于或小于纸张的宽度。

不能使用 Format 属性来区别 Null 值和零长度字符串

在 1.x 和 2.0 版中,可以使用控件的 Format 属性为 Null 值和零长度字符串 (" ") 显示不同的值。而在 Microsoft Access 2002 中,要区别窗体控件中的 Null 值和零长度字符串,必须将控件的 ControlSource 属性设为一个表达式,以测试 Null 值。例如,要在控件中显示 Null 或 ZLS,必须将它的 ControlSource 属性设为下列表达式:

=IIf(IsNull([MyControl]), "Null", Format([MyControl], "@;ZLS"))