转换 Microsoft Access 表、窗体和报表
适用于:Access 2013、Office 2013
Microsoft Access 2002 引入的多项更改可能会影响版本 1 的行为。x 或 2.0 应用程序。 下面的章节将提供有关这些更改的详细信息。
索引和关系
Microsoft Access 表最多可以包含 32 个索引。 非常复杂的表(这些表是许多关系的一部分)可能会超过这个索引限制,因此无法转换包含这些表的数据库。 Microsoft Access 数据库引擎根据表之间的关系的双方创建索引。 如果数据库不进行转换,请删除一些关系,然后再次尝试转换数据库。
组合框的 LimitToList 属性
在 Microsoft Access 2002 或更高版本中,当 LimitToList 属性设置为 True (–1) 时,组合框接受 Null 值,无论列表是否包含 Null 值。 在版本 2.0 中, 将 LimitToList 属性设置为 True 的组合框将不接受 Null 值,除非列表包含 Null 值。 如果要阻止用户使用组合框输入 Null 值,请将表中字段的 Required 属性设置为 “是”。
OLE 对象的菜单和就地激活
为了在就地激活 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 。 当将 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"))