RunCode 操作[13]
使用 RunCode 操作可以调用 Microsoft Visual Basic 的 Function 过程。RunCode 操作具有以下参数:
操作参数 |
说明 |
函数名称 |
要调用的 Visual Basic Function 过程名称。请将任何函数参数写在括号中,并在“宏”窗口“操作参数”节的“函数名称”框中键入函数名称。该参数是必选参数。 |
说明 用户定义的 Function 过程保存在 access 的模块中。
即使 Function 过程没有任何参数,括号也是必须的,如下例所示: TestFunction()
与用来设置事件属性的用户定义函数名不同的是,“函数名”参数中的函数名前没有等号 (=)。
access 将忽略函数的返回值。
注意 如果函数的名称与模块名相同,则不能从宏中调用 Function 过程。
提示 要运行用 Visual Basic 编写的 Sub 过程或事件过程,请创建调用 Sub 过程或事件过程的 Function 过程,然后再使用 RunCode 操作运行该 Function 过程。
如果用 RunCode 操作调用函数,access 将在数据库标准模块中查找由“函数名称”参数所指定的函数。不过,如果是通过选择窗体或报表的菜单命令或在产生窗体或报表事件时运行该操作,access 将首先查找窗体或报表类模块中的函数,然后再在标准模块中查找。access 不会在“数据库”窗口的“模块”选项卡中所显示的类模块中查找由“函数名称”参数指定的函数。
在 Visual Basic 中没有该操作。请直接在 Visual Basic 中运行所需 Function 过程。
RunCommand 操作
使用 RunCommand 操作可以运行 Microsoft access 的内置命令。内置命令可以出现在 access 菜单栏、工具栏或快捷菜单上。RunCommand 操作具有以下操作参数:
命令 |
要运行的命令的名称。“命令”框中按字母顺序显示了可用的 access 内置命令。该参数是必需的。 |
说明 在 access 97 中,RunCommand 操作取代了 DoMenuItem 操作。当打开并保存一个包含 DoMenuItem 操作的早期版本的 access 宏时,DoMenuItem 操作及其参数会自动转换为对应的 RunCommand 操作。“宏”窗口中的操作列表上不再有 DoMenuItem 操作。
使用 RunCommand 操作可以运行自定义菜单栏、全局菜单栏、自定义快捷菜单或全局快捷菜单上的 access 命令。然而,如果要把 access 命令添加到自定义菜单和快捷菜单中,则使用“自定义”对话框(将鼠标指向“视图”菜单上的“工具栏”,然后单击“自定义”命令即可显示该对话框)通常会更加简单。在“自定义”对话框的“命令”选项卡上列出了显示在 access 工具栏和菜单中的内置 access 命令。
在宏中与条件表达式一起使用 RunCommand 操作可以根据一定的条件运行命令。
注意 “文件”菜单显示最近使用的数据库。可以单击其中一个数据库以打开它,而不用单击“打开数据库”。在“命令”参数的下拉列表框中并没有显示这些数据库项,不能通过在宏中使用 RunCommand 操作的方法访问它们。
在从以前版本的 access 中转换 access 数据库时,有些命令将不可用。它们可能在 access 中被重新命名、移到别的菜单或从此失效。对于这种命令,DoMenuItem 操作将不能转换为 RunCommand 操作。在打开宏时,access 将会针对这种命令显示一个带有空白“命令”参数的 RunCommand 操作。必须编辑该宏并输入一个有效的命令参数,或删除 RunCommand 操作。
若要在 Visual Basic 中运行 RunCommand 操作,可使用 Application 对象的 RunCommand 方法。(相当于 DoCmd 对象的 RunCommand 方法。)
RunMacro 操作
可在以下情况中使用该操作: 1.从某个宏中运行另一个宏。 2.根据一定条件运行宏。 3.将宏附加到自定义菜单命令中。 RunMacro 操作具有以下参数:
操作参数 |
说明 |
宏名 |
所要运行的宏的名称。在“宏”窗口中“操作参数”部分的“宏名”框中显示的是当前数据库中的所有宏(包括所有宏组)。如果宏在宏组中,那么它将以 macrogroupname.macroname 列在列表中宏组名称下面。该参数是必需的。 如果在某个类库数据库中运行含有 RunMacro 操作的宏,Microsoft access 将在该类库数据库中查找具有该名称的宏,而不是在当前数据库中查找。 |
重复次数 |
宏运行次数的上限。如果将本参数留空(并且将“重复表达式”也留空),该宏将只运行一次。 |
重复表达式 |
该表达式的计算结果为 True (-1) 或 False (0)。当表达式的值为 False 时宏将停止运行。每次宏运行的时候都将计算该表达式的值。 |
说明 如果为“宏名”参数输入的是宏组名称,access 将运行宏组中的第一个宏。
该操作的效果和单击“工具”菜单上的“宏”(在其中可以选择和运行一个特定的宏)是一样的。不过,使用菜单中的命令只能运行宏一次,而 RunMacro 操作可以不受限制地多次运行宏。
提示 可使用“重复次数”和“重复表达式”参数来决定宏运行的次数:
如果运行一个含有 RunMacro 操作的宏时遇到了 RunMacro 操作,access 将运行被调用的宏。该宏运行完以后,access 将返回原来的宏继续执行下一个操作。
注意
提示 可在宏组中用 RunMacro 操作来从自定义菜单中运行一个宏(该宏组为自定义菜单栏定义了自定义命令)。不过,用新的命令栏功能从菜单栏、工具栏或快捷菜单运行宏将更容易。在“视图”菜单上,指向“工具栏”,单击“自定义”可显示“自定义”对话框。在对话框的“工具栏”选项卡上,选择要从中运行宏的菜单栏、工具栏或快捷菜单。在“命令”选项卡上,单击“类别”框中的“所有宏”,然后在“命令”框中选择要运行的宏并将其拖至相应的菜单栏、工具栏或快捷菜单中。在菜单栏、工具栏或快捷菜单上单击该宏的图标时,access 将运行该宏。另外,还可从“数据库”窗口将宏拖至菜单栏或工具栏上,access 会创建运行该宏的图标。
若要在 Visual Basic 中运行 RunMacro 操作,可使用 DoCmd 对象的 RunMacro 方法。
RunSQL 操作
通过使用相应的 SQL 语句,可以用 RunSQL 操作来运行 Microsoft access 的操作查询。还可以运行数据定义查询。RunSQL 操作具有以下参数:
操作参数 |
说明 |
SQL 语句 |
所要运行的操作查询或数据定义查询对应的 SQL 语句。该语句的最大长度是 255 个字符。该参数是必需的。 |
使用事 务处理 |
选择“是”则在事务处理中包含这个查询。如果不想使用事务处理的话,则选择“否”。默认值为“是”。在 access 97 之前,当运行该操作时,access 总是要在事务处理中包括查询。以 BeginTrans 方法开始,执行 SQL 语句,然后以 CommitTrans 方法结束。如果将此参数设为“否”,则查询将运行得更快。 |
说明 用操作查询可以追加、删除和更新记录,还可以将查询的结果集存为一个新表。用数据定义查询则可以创建、改变和删除表,还可以创建和删除索引。通过 RunSQL 操作可以用一个宏直接来完成这些操作而不需要使用存储的查询。
如果需要键入一个超过 255 个字符的 SQL 语句,请在 Visual Basic 中使用 DoCmd 对象的 RunSQL 方法。在 Visual Basic 中 SQL 语句可长达 32,768 个字符。
access 查询实际上是 SQL 语句,这些语句是当您在“查询”窗口中使用设计网格设计查询时创建的。下表给出了 access 的操作查询和数据定义查询以及相应的 SQL 语句。
查询类型 |
SQL 语句 |
查询类型 |
SQL 语句 |
操作 |
|
数据定义(SQL 特定查询) |
Create TABLE |
Insert INTO |
创建表 |
Alter TABLE | |
Delete |
修改表 |
Drop TABLE | |
Select...INTO |
删除表 |
Create INDEX | |
Update |
创建索引 |
Drop INDEX | |
|
|
删除索引 |
|
另外,还可在这些语句中使用 IN 子句来修改另一个数据库中的数据。
注意 若要在宏中运行选择查询或交叉表查询,可用 OpenQuery 操作的“视图”参数在“数据表”视图中打开一个已有的选择查询或交叉表查询。还可以用相同的方式运行已有的操作查询和 SQL 特定查询。
提示 若要查看与 access 查询对应的 SQL 语句,请在“查询”窗口中单击“视图”菜单上的“SQL 视图”命令。可以将列出的 SQL 语句作为模板来创建用 RunSQL 操作运行的查询。将 SQL 语句复制到 RunSQL 操作的“SQL 语句”参数上,其效果等同于在“查询”窗口中运行该 access 查询。