Access 2003完整教程:转换 Access 文件的疑难解答

大部分旧版Microsoft Access 文件都可以很容易地转换为 Access 2000 或 Access 2002 - 2003 文件格式。但在少数情况下,新增的功能会与已有对象和代码发生冲突。

将任何以前版本的 Access 数据库转换为 Access 2000 或 Access 2002 -2003 文件格式的疑难解答

在转换或使用数据库的过程中,出现编译错误的消息。

将 Microsoft Access 2.0 版数据库转换为 Access 2000 或 Access 2002 -2003 文件格式时,转换实用程序会将 Access Basic 代码转换为 Visual Basic for Applications (VBA) 代码。如果任何代码编译失败,在转换完 Access 数据库后将会收到一条错误信息。

在已转换的 Access 数据库中,在“设计”视图中打开模块,然后单击“调试”菜单上的“编译 <Project Name>”。在 Access 编译期间,将在任何包含错误的代码行上中断,然后用户可以修改语法以解决编译错误。

在转换大的数据库时,得到“内存不足”或“无法创建任何其他类模块”消息。

Microsoft Access 2000 或 Access 2002 - 2003 文件格式的文件最多可以有 1000 个模块,而 Access 97 数据库最多可以有 1024 个模块。Microsoft Access 文件中模块的数目包括“内含模块”属性设为“是”的窗体和报表。要解决该内存问题,可以减少 Access 数据库中的对象数。可以将应用程序分为多个数据库。如果模块中有大量的代码,可以考虑使用类库数据库来保存代码。

要查看转换错误的日志。

如果在转换Access 文件时 Microsoft Access 遇到错误,则通过打开新 Access 文件中的“转换错误”表,可以查看这些错误的摘要。“转换错误”表包含下述列:

对象类型数据库对象的类型,Access 在该数据库对象中遇到错误,或者,如果 Access 遇到不是针对特定类型对象的错误,则为“Database”。

对象名称Access 从中遇到错误的对象的名称。然而,如果 Access 在转换期间遇到编译错误,则不指定包含该错误的模块的名称。

错误说明如有必要,可以按 Shift+F2 来查看错误的完整说明。

无法使用“转换数据库/项目”命令转换 Access 文件。

如果通过指向“工具”菜单上的“数据库实用工具”,然后单击“转换数据库/项目”命令,无法成功转换 Microsoft Access 文件,则请使用下列过程。

  1. 在 Access 2002 或更高版本中,单击“文件”菜单上的“新建”,然后新建Access 数据库或Access 项目。

  2. 在“文件”菜单上,指向“获取外部数据”并单击“导入”。

  3. 在“导入”对话框中,选择要转换的 Access 文件。

  4. 在“导入对象”对话框中,选择要导入的数据库对象。如果新的 Access 文件是已连接到 Microsoft SQL Server 数据库的 Access 项目,则只导入窗体、报表、页、宏和模块。

注释使用这种方法转换 Access 文件时,可能需要设置引用,方法是:在“设计”视图中打开模块,单击“工具”菜单上的“引用”,然后选中在旧版 Access 文件中设置的引用旁的复选框。

在已转换的 Access 数据库中“名称自动更正”不起作用。

在 Access 2000 或更新版中创建的数据库中,默认情况下名称自动更正功能是启用的。要在转换的Microsoft Access 数据库中启用名称自动更正,请执行以下步骤:

  1. 在“工具”菜单上,单击“选项”,然后单击“常规”选项卡。
  2. 选中“跟踪名称自动更正信息”和“执行名称自动更正”复选框。

    如果需要记录 Access 修改名称错误时对数据库进行的更改,请同时选中“记录名称自动更正的更改情况”复选框。

  3. 在“设计”视图中打开每个表、查询和报表,保存并关闭它。

在已转换的非英文版的 Access 数据库中的数据难于辨认。

在将Microsoft Access 数据库从 Access 97 或更早版本转换为 Access 2000 或 Access 2002 - 2003 文件格式时,Access 使用排序次序确定在将数据转换为Unicode时所使用的代码页。Access 2000 或更新版将“常规”排序次序与西欧代码页相关联。因此,如果使用了旧版的 Access 数据库与非英文的操作系统,并将其保存为“常规”排序次序,请使用下列过程之一。

将 Access 2.0 版数据库转换为 Access 2000 或 Access 2002 - 2003 文件格式时有关其他问题的疑难解答

查询条件中的时间或日期值返回不同的结果。

将 Microsoft Access 2.0 版数据库转换为 Access 2000 或 Access 2002 - 2003 文件格式时,如果查询中包含基于“日期/时间”字段中指定的时间值的条件,查询将返回与旧版本不同的结果。在将 Microsoft Access 2.0 版数据库中的表链接到 Access 2000 或更高版本的数据库中时,也会发生这种情况。但是,这只影响“日期/时间”字段的时间部分。

查询也可能会返回不同的结果,这样的查询包含了指定日期在 1900 到 1929 之间的条件。例如,在 Microsoft Access 2.0 和 95 中的#01/01/15日期条件代表 1915 年 1 月 1 日;在 Microsoft Access 97 或更高版本中同样的日期条件则代表 2015 年 1 月 1 日。为了处理这种差别,可修改条件中的数据来指定世纪(例如,#01/01/1915#)。

转换的 Microsoft Access 2.0 版报表的页边距不同。

在已从 Access 2.0 转换为 Access 2000 或 Access 2002 - 2003 文件格式的 Microsoft Access 数据库中,当试图打印或预览某些页边距设为 0 的报表时,可能会遇到问题。在转换 2.0 版的报表时,页边距不是设为 0,而是设为默认打印机的最小有效页边距。这是为了避免在打印机的非打印区域打印报表数据。

若要解决该问题,可以减少报表的列宽、列间距或列数,以使各列的宽度加上默认的页边距小于纸张的宽度。

16 位 API 调用不能转换。

如果 Microsoft Access 2.0 版的模块中包含 16 位 API 调用,在将数据库转换为 Access 2000 或 Access 2002 - 2003 文件格式时将出现错误消息。因此必须在已转换的数据库中将 APIDeclare语句改为相应的 32 位形式。

以下列表提供了一些用于转换代码的提示。

自定义控件不能转换。

将包含ActiveX 控件的Microsoft Access 数据库转换为 Access 2000 或 Access 2002 - 2003 文件格式时,会出现错误消息。因为 Access 2.0 版支持 16 位 ActiveX 控件,而 Access 95 或更高版本支持 32 位 ActiveX 控件。如果计算机上有 32 位的版本,并且已经注册,则 Access 可以自动将 16 位控件更新为 32 位版本。

得到多于 32 个表索引的错误消息。

如果 Microsoft Access 2.0 版数据库中的表具有 32 个或更多的索引和组合关系,在将其转换为 Access 2000 或 Access 2002 - 2003 文件格式时将出现错误消息。要解决该错误,必须在 Access 2.0 版中打开数据库,并修改表的设计以减少主键表的关系数,或删除外键表的某些索引,然后再进行转换。

在打开已转换数据库中的表或窗体时,收到 ODBC 的错误消息。

如果将转换过的 Microsoft Access 1.x 或 2.0 数据库中的表链接到使用 16 位驱动程序管理器和驱动程序的ODBC 数据源,将出现“ODBC – 连接到 datasourcename 失败”的错误信息。Microsoft Access 2002 或更高版本只能打开使用 32 位版本的“ODBC 驱动程序管理器”(Odbc32.DLL) 及适当的 ODBC 驱动程序(例如,32 位版本的 Microsoft SQL Server ODBC 驱动程序 (Sqlsrv32.DLL))的链接 ODBC 数据源。

若要更正此错误,必须为每一个链接到原 Access 1.x 或 2.0 版数据库的 ODBC 数据源,新建一个同名的 32 位数据源名 (DSN)。

  1. 在 Microsoft Windows 控制面板中,双击“管理工具”,然后双击“数据源 (ODBC)”。
  2. 通过输入与原 DSN 相同的值创建新的 DSN。例如,对于 Microsoft SQL Server,至少需要定义“数据源名称”和“服务器”,但可能还需要定义附加的值,例如“数据库名称”。

如果不能确定 DSN 的原始名称,请在创建它的 Microsoft Access 版本中打开原始数据库,在“设计”视图打开链接表,然后显示“表属性”表。表的“说明”属性包含对 ODBC 连接字符串的定义。在连接字符串中,接在DSN=后面的参数即为 DSN 的名称。

将 Access 2000 或更高版本数据库转换为 Access 97 的疑难解答

得到计算机至少丢失一个 Access 97 对象库的消息。

可以将使用数据访问对象 (DAO)的代码转回 Microsoft Access 97,但是您可能会收到计算机丢失至少一个 Access 97 对象库的消息。使用该过程修复丢失的引用。

  1. 将 Access 2000 或更高版本的数据库转换为 Microsoft Access 97。当收到计算机丢失至少一个 Access 97 对象库的消息时,单击“确定”。
  2. 在 Microsoft Access 97 中,打开已转换的 Access 数据库。
  3. 打开数据库中的模块。
  4. 在“工具”菜单上,单击“引用”。
  5. 在“可使用的引用”对话框中,清除任何丢失的引用旁的复选框。
  6. 若要设置正确的引用,请选择 Microsoft DAO 3.51 Object Library 旁的复选框。

注释与 Access 2000 或更高版本不同,Access 97 不能与ActiveX 数据对象 (ADO)一同使用。

从 Access 2000 或 Access 2002 - 2003 文件格式的启用安全机制的 Access 数据库转换的 Access 97 文件不能保留其安全机制。

在将 Access 2000 或 Access 2002 - 2003 文件格式的 Microsoft Access 数据库转换回 Access 97 时, 新的 Access 97 数据库中的权限重置为默认设置,这是因为 Access 97 不能使用 Access 2000 或 Access 2002 - 2003 文件格式的工作组信息文件。必须在 Access 97 中帮助保护新数据库。

导入规格在从 Access 2000 或 Access 2002 - 2003 文件格式转换的 Access 97 文件中丢失。

在 Microsoft Access 文件中用 Access 2000 或 Access 2002 - 2003 文件格式创建和保存的导入规格并没有在 Access 97 文件中进行创建。必须重新创建规格。

上页:Access 2003完整教程:得到“无效参数”的消息。 下页:Access 2003完整教程:将组页眉打印在第一个明细记录所在行

Access 2003完整教程:转换 Access 文件的疑难解答

Access 2003完整教程:将组页眉打印在第一个明细记录所在行Access 2003完整教程:报表快照疑难解答
Access 2003完整教程:得到“表达式无效”的消息。Access 2003完整教程:得到“在表达式中未定义的函数”的消息。
Access 2003完整教程:得到“默认排序属性无效”的消息。Access 2003完整教程:表和字段属性疑难解答 (MDB)
Access 2003完整教程:希望在 Access 中打开 HTML 文件,但它却在另一个 Office 程序中打开。Access 2003完整教程:数据访问页的疑难解答
Access 2003完整教程:查找并替换数据的疑难解答Access 2003完整教程:超链接疑难解答
Access 2003完整教程:宏安全性疑难解答Access 2003完整教程:数据表和子数据表疑难解答
Access 2003完整教程:在另一个表中添加匹配记录。Access 2003完整教程:压缩、修复或恢复 Access 文件的疑难解答
Access 2003完整教程:使用“数据输入”命令后不能再次显示我的记录。(MDB)Access 2003完整教程:词组中每个单词的首字母大写
Access 2003完整教程:使用 Visual Basic 更改查询的 SQL 语句的示例Access 2003完整教程:使用 IsLoaded 函数时得到“过程或函数未定义”的消息。
Access 2003完整教程:试图以代码方式引用表字段时,得到“未找到方法或数据成员”消息。Access 2003完整教程:Visual Basic 代码疑难解答
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号