SendKeys 操作[15]
使用 SendKeys 操作可以将键击直接发送到 Microsoft Access 或活动的 Windows 应用程序中。
操作参数 |
说明 |
键击 |
指定要 Access 或其他应用程序处理的键击。请在“宏”窗口“操作参数”节的“键击”框中输入键击。最多可键入 255 个字符。该参数是必选参数。 |
等待 |
指定宏是否要暂停运行,直到处理完键击才运行。可选择“是”(暂停)或“否”(不暂停)。默认为“否”。 |
说明 Access 对通过 SendKeys 操作接收的键击的处理方式与对直接在 Access 窗口中键入的一样。
要指定键击,请使用和 SendKeys 语句相同的语法。
注意 如果键击参数语法不正确、拼写有误或包含不适于键击发送到的目标窗口的其他值时,则错误。
用该操作可在对话框中输入信息,特别是在不希望中断宏的运行而手动响应对话框时使用该操作。一些 Access 操作,如 PrintOut 和 FindRecord 操作,将自动选择某些经常使用的对话框中的选项。用 SendKeys 操作可在不经常使用的对话框中选择选项。
如果要将 255 个以上的字符发送到 Access 或其他 Windows 应用程序,可在一个宏中连续使用多个 SendKeys 操作。
用 SendKeys 操作发送键击可以触发相应的 KeyDown、KeyUp 和 KeyPress 事件。发送非 ANSI 键击(如功能键)不会触发 KeyPress 事件。
在 Microsoft Visual Basic 中没有该操作。请用 SendKeys 语句作为代替。
SendObject 操作
使用 SendObject 操作可以将指定的 Microsoft Access 数据表、窗体、报表、模块或数据访问页包含在电子邮件消息中,以便查看和转发。也可将 Microsoft Excel 2000 (*.xls)、MS-DOS 文本文件 (*.txt)、RTF 文件 (*.rtf) 或 HTML (*.html) 格式的对象包含在 Microsoft Outlook、Microsoft Exchange 或其他使用“邮件应用程序编程接口”(MAPI) 的电子邮件应用程序的邮件消息中。
SetMenuItem 操作
使用 SetMenuItem 操作可以设置活动窗口的自定义菜单栏或全局菜单栏上的菜单项状态(启用或禁用,选取或不选取)。
注意 SetMenuItem 只用于由菜单栏宏创建的自定义菜单栏和全局菜单栏。在本版本的 Microsoft Access 中包含 SetMenuItem 操作只是为了和以前的版本保持兼容。它不能用于新的命令栏功能。但是,可以在 Visual Basic 中使用 Enabled 和 State 属性将新的菜单栏、工具栏和快捷菜单上的项目设置为启用或禁用、选取或不选取等状态。
参数 |
说明 |
菜单 索引 |
菜单的索引。该菜单包含要对其进行状态设置的命令。可在“宏”窗口中“操作参数”部分的“菜单索引”框中为活动窗口的自定义菜单栏或全局菜单栏上的所需菜单输入一个“整型”索引值(从 0 开始)。该索引与菜单在自定义菜单栏或全局菜单栏的菜单栏宏中的位置(该菜单的 AddMenu 操作在菜单栏宏中的位置,从 0 开始)有关。菜单栏的显示可以有所差别,因为可在菜单栏宏中使用条件表达式来隐藏或显示自定义菜单项。该参数是必需的。 如果选择菜单时设置了本参数而将“命令索引”和“子命令索引”参数留空,则可以启用或禁用该菜单名称。但不能选取或不选取菜单名称(对于菜单名称,Access 忽略“标志”参数的“选取”和“不选取”设置)。 |
命令 索引 |
要设置状态的命令的索引。对于由“菜单索引”参数选定的菜单中所需的命令输入一个“整型”值(从 0 开始)。该索引与命令在用于定义自定义菜单栏或全局菜单栏上选定菜单的宏组中的位置(该命令的宏在宏组中的位置,从 0 开始)有关。菜单的显示可以有所差别,因为可在菜单的宏组中使用条件表达式隐藏或显示自定义菜单命令。 |
子命令 索引 |
要设置状态的子命令的索引。仅当所需命令具有子菜单时该参数才可用。对于由“命令索引”参数选定的子菜单中所需的子命令输入一个“整型”值(从 0 开始)。该索引与子命令在用于定义自定义菜单栏或全局菜单栏上选定子菜单的宏组中的位置(该子命令的宏在宏组中的位置,从 0 开始)有关。 |
标志 |
要将命令或子命令设置成的状态。可选择“变灰”(禁用该命令,命令变为灰色)、“变实”(启用该命令)、“选取”(在命令旁显示一个勾号,表示已选定或切换到该命令)或“不选取”(清除勾号)。默认值为“变实”。 |
说明 SetMenuItem 操作仅用于活动窗口的自定义菜单栏或全局菜单栏。如果活动窗口不包含自定义菜单栏或全局菜单栏时,运行包含 SetMenuItem 操作的宏将导致一个运行时错误。请注意,如果没有为窗体或报表添加自定义菜单栏,则全局菜单栏(如果已经定义了的话)将取代所有 Access 窗口上的内置菜单栏。
使用该操作可以设置菜单命令和其子命令的状态,但是不能设置子命令的子命令的状态。
若要在 Visual Basic 中运行 SetMenuItem 操作,请使用 DoCmd 对象的 SetMenuItem 方法。
SetValue 操作
使用 SetValue 操作可以设置 Microsoft Access 窗体、窗体数据表或报表上的字段、控件或属性的值。
注意 不能使用 SetValue 操作设置返回对象的 Access 属性值。
参 |
说明 |
项目 |
要设置值的字段、控件或属性的名称。在“宏”窗口“操作参数”节的“项目”框中输入字段、控件或属性的名称。必须用完整的语法形式引用该项,如 controlname (这是调用宏的窗体或报表上一个控件的名称)或 Forms!formname!controlname。该参数是必选参数。 |
表达式 |
Access 使用表达式来对该项的值进行设置。必须用完整的语法形式来引用表达式中的任何对象。例如,要将“雇员”窗体上的 注意 在该参数表达式之前不能使用等号 (=),否则 Access 将计算表达式的值并将该值用作该参数的表达式。这在表达式是字符串的情况下将产生不可预料的结果。 例如,如果为本参数键入了="String1",Access 首先计算表达式的值为 String1,然后用 String1 作为参数表达式,在调用宏的窗体或报表上查找一个名为“String1”的控件或属性。 |
注意 若要用“表达式生成器”来创建上述参数的表达式,请在 Access 数据库 (.mdb) 中, 单击“项目”或“表达式”框右侧的“生成器”按钮
说明 使用该操作可以对窗体、窗体数据表或报表上的字段或控件的值进行设置。也可以对任何视图中几乎所有的控件、窗体和报表的属性值进行设置。要了解某个特定的属性是否可在宏中进行设置以及可在何种视图中对该属性进行设置,请参阅对应属性的“帮助”主题。
此外,也可以对窗体基础表中的字段值进行设置,即使窗体不含有绑定到该字段的控件。请在“项目”框中使用 Forms!formname!fieldname 的语法形式来设置这些字段的值。也可以用 Reports!reportname!fieldname 的语法形式来引用报表基础表中的字段值,但报表上必须有一个绑定到该字段的控件,或必须在报表上的计算控件中引用该字段。
在设置窗体控件的值时,SetValue 操作不会触发控件窗体级别的有效性规则,但在控件是绑定控件时会触发基础字段的表级别有效性规则。SetValue 操作还会触发重新计算,但这不会立即进行。要立即触发重新绘制并强制完成重新计算,请用 RepaintObject 操作。用 SetValue 操作设置的控件值也不会受输入掩码的影响。该掩码是在控件或基础字段的“输入掩码”属性中设置的。
要更改控件的值,可在宏中使用由控件的“更新后”事件属性指定的 SetValue 操作。不过,不能在由控件的“更新前”事件属性指定的宏中使用 SetValue 操作来改变控件的值(虽然可用 SetValue 操作改变其他控件的值)。也可在由窗体的“更新前”或“更新后”属性指定的宏中使用 SetValue 操作来更改当前记录上任何控件的值。
注意 不能用 SetValue 操作设置以下控件的值:
提示 用 SetValue 操作可以隐藏或显示“窗体”视图中的一个窗体。请在“项目”框中输入 Forms!formname.Visible 并在“表达式”框中输入“否”或“是”。将模式窗体的“可见性”属性设置为“否”可隐藏窗体并将窗体设为无模式。如果将属性设为“是”则会显示窗体并将其再次设为有模式的。
在宏中用 SetValue 操作来更改控件的值或添加新的值不会触发诸如“更新前”、“插入前”或“更改”等事件,这些事件是当在用户界面更改或输入这些控件的值时发生的。当在 Visual Basic 中设置控件的值时,这些事件也不会发生。
在 Microsoft Visual Basic 中没有该操作。在 Visual Basic 中可直接对值进行设置。
示例 通过使用宏设置控件的值
下面的宏使用“供应商”窗体中的一个按钮打开“增加产品”窗体。它显示了 Echo、Close、OpenForm、SetValue 及 GoToControl 操作的使用方法。SetValue 操作将“产品”窗体中的“供应商ID”控件设置为 “供应商”窗体中的当前供应商,然后 GoToControl 操作将焦点移到“类别ID”字段,以便输入新产品的数据。该宏应附加到“供应商”窗体的“添加产品”按钮上。
操作 |
参数:设置 |
备注 |
Echo |
打开回响:否 |
在宏执行当中停止屏幕更新。 |
Close |
对象类型:窗体 对象名称:产品列表 保存:否 |
关闭“产品列表”窗体。 |
OpenForm |
窗体名称:产品 视图:窗体 数据模式:添加 窗口模式:普通 |
打开“产品”窗体。 |
SetValue |
项目:[Forms]![产品]![供应商ID] 表达式:供应商ID |
将“供应商ID”控件设为“供应商”窗体中的当前供应商。 |
GoToControl |
控件名称:类别ID |
移到“类别ID”控件。 |