由 Microsoft Access 2002 引入的某些更改可能会影响 1.x 或 2.0 版应用程序的行为。下面的章节将提供有关这些更改的详细信息。
Microsoft Access 表最多可以包含 32 个索引。非常复杂的表(这些表是许多关系的一部分)可能会超过这个索引限制,因此无法转换包含这些表的数据库。3.6 版的 Microsoft Jet 数据库引擎根据表之间的关系的双方创建索引。如果数据库没有转换,可删除某些关系,然后重新尝试转换数据库。
在 Microsoft Access 2002 或更高版本中,当 LimitToList 属性设为 True (-1) 时,组合框可接受 Null 值,不论列表是否包含 Null 值。而在 2.0 版中,除非列表包含 Null 值,否则其 LimitToList 属性设为 True 的组合框将不接受 Null 值。如果要通过使用组合框避免用户输入 Null 值,可将表中字段的 Required 属性设为 Yes。
当现场激活 OLE 对象时,为了使用附加的功能,在激活 OLE 服务器时,某些菜单命令可能已经移到未被替换的菜单上。
更改不会影响这个已转换的应用程序中的宏,该宏当激活某组件时使用 DoMenuItem 操作来执行 2.0 版的菜单命令。2.0 版本的命令对应于在 Microsoft Access 的更高版本中的等价命令。
在 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 2002 以前的版本中,即使在对象之后没有代码,Form 和 Report 对象仍具有相关的类模块。在 Microsoft Access 2002 或更高版本中,可以将窗体或报表的 HasModule 属性设为 False。当将“内含模块”属性设为“否”时,因为窗体或报表将不再具有相关的类模块,所以将占用较少的磁盘空间,并且可以更快地加载。
当试图打印或预览从 Microsoft Access 2.0 转换的 Microsoft Access 2002 或更高版本的报表时,如果报表的某些页边距设为 0,可能会遇到问题。当转换 Microsoft Access 2.0 报表时,页边距不能设为 0,而应设为对默认打印机有效的最小页边距。这将避免报表在打印机的不可打印区域打印数据。
要解决这个问题,可减少报表中的列宽度、列间距或列数,使得列宽度加上默认页边距的宽度等于或小于纸张的宽度。
在 1.x 和 2.0 版中,可以使用控件的 Format 属性为 Null 值和零长度字符串 (" ") 显示不同的值。而在 Microsoft Access 2002 或更高版本中,要区别窗体控件中的 Null 值和零长度字符串,必须将控件的 ControlSource 属性设为一个表达式,以测试 Null 值。例如,要在控件中显示 Null 或 ZLS,必须将它的 ControlSource 属性设为下列表达式:
=IIf(IsNull([MyControl]), "Null", Format([MyControl], "@;ZLS"))