全部显示

DoCmd 对象的宏操作和方法

   

若要在 Microsoft Access 代码中运行宏操作,可使用 DoCmd 对象及其方法。该对象代替 Microsoft Access 1.x 和 2.0 版本中的 DoCmd 语句来执行宏操作。

当转换数据库时,Microsoft Access 通过用 .(点)运算符替换空格,自动将任何在 Access Basic 代码中执行的 DoCmd 语句和操作转换为 DoCmd 对象的方法。

某些宏操作在 Microsoft Access 9.0 中及更高版本中与在 1.x、2.0 或 7.0 版中的工作方式不同,下面详细说明这些差异。

用 Microsoft Access 95 创建的数据库

DoMenuItem 操作

在 Microsoft Access 中不再使用 DoMenuItem 操作。RunCommand 操作将用于完成 DoMenuItem 操作所执行的任务。

启用用旧版本 Microsoft Access 创建的数据库时,DoMenuItem 操作将继续执行以前的功能。

当转换用旧版本 Microsoft Access 创建的数据库时,转换后首次保存时,宏中所有的 DoMenuItem 操作均将替换为 RunCommand 操作。而 Visual Basic 过程中使用的 DoMenuItem 方法则不会更改。

用 Microsoft Access 1.x 或 2.0 版本创建的数据库

TransferSpreadsheet 操作

Microsoft Access 不能导入 Microsoft Excel 2.0 版的电子表格或 Lotus1-2-3 1.0 版的电子表格。如果转换包含宏的数据库,而该宏使用 Microsoft Access 1.x 或 2.0 版中的 TransferSpreadsheet 操作提供这种功能,则转换数据库过程会将“电子表格类型”参数改为 Microsoft Excel 3.0 版(假如最初指定的是 Microsoft Excel 2.0 版);如果最初指定的是 Lotus1-2-3 1.0 版的格式,则会出现错误。

要解决该问题,应在将电子表格导入到 Microsoft Access 之前,先将电子表格转换为新版本的 Microsoft Excel 或 Lotus 1-2-3。

TransferText 和 TransferSpreadsheet 操作

在 Microsoft Access 中使用 TransferText 操作或 TransferSpreadsheet 操作时,不能使用 SQL 语句来指定要导出的数据。必须先创建查询,然后在“表名”参数中指定查询的名称,而不是使用 SQL 语句。

比较 Null 值

在 Microsoft Access 1.x 和 2.0 版中,如果在宏条件中用比较运算符比较两个表达式,且其中的一个表达式是 Null,那么根据使用的比较运算符,Access Basic 将返回 TrueFalse 作为比较的结果。在 Microsoft Access 2000 或更高版本中,Visual Basic 为表达式等于 Null 的比较返回 Null。为确定比较结果是否为 Null,请使用 IsNull 函数检查比较结果。