Application.SysCmd 方法 (Access)
使用 SysCmd 方法在状态栏中显示进度表或可选指定文本,返回有关 Microsoft Access 及其关联文件的信息,或返回指定数据库对象的状态 (以指示对象是否打开、是否为新对象,或已更改但未保存) 。 Variant。
语法
表达式。SysCmd (Action、 Argument2、 Argument3)
expression:表示 Application 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
操作 | 必需 | AcSysCmdAction | 标识要执行的操作类型的 AcSysCmdAction 常量。 该常量集适用于进度表。 如果这些操作成功, SysCmd 方法将返回 Null 。 否则,Access 将生成运行时错误。 |
Argument2 | 可选 | Variant | 要显示状态栏中左对齐的文本。 当 Action 参数为 acSysCmdInitMeter、 acSysCmdUpdateMeter 或 acSysCmdSetStatus 时,此参数是必需的;此参数对其他 Action 参数值无效。 注意:为 Action 参数指定 acSysCmdGetObjectState 值时,必须指定相应的 AcObjectType 常量。 |
Argument3 | 可选 | Variant | 数值表达式,其控制进度表的显示。 当 Action 参数为 acSysCmdInitMeter 时,此参数是必需的;此参数对其他 Action 参数值无效。 注意:为 Action 参数指定 acSysCmdGetObjectState 值时,必须指定数据库对象的名称。 |
返回值
Variant
备注
例如,如果您要构建一个创建新窗体的自定义向导,可以使用 SysCmd 方法来显示一个进度表,指出向导的进度建立窗体。
通过调用 SysCmd 方法各种进度表操作,可以在状态栏中为具有已知持续时间或数量的步骤,显示进度表,并其更新为指示操作的进度。
若要在状态栏中显示进度表,必须先使用 acSysCmdInitMeterAction 参数以及 Text 和 Value 参数调用 SysCmd 方法。 当 Action 参数为 acSysCmdInitMeter 时, Value 参数是计量的最大值,即 100%。
若要更新计量以显示操作进度,请使用 acSysCmdUpdateMeterAction 参数和 Value 参数调用 SysCmd 方法。 当 Action 参数为 acSysCmdUpdateMeter 时, SysCmd 方法使用 Value 参数计算计量所显示的百分比。 例如,如果设置最大值为 200,然后用 100 的值更新此表,则进度表只填满了一半。
还可以更改状态栏中显示的文本,方法是使用 acSysCmdSetStatusAction 参数和 Text 参数调用 SysCmd 方法。 例如在排序期间,可能希望文本改为“正在排序...”。 当排序完成时,还想通过删除该文本来重置状态栏。 Text 参数可以包含大约 80 个字符。 由于状态栏文本是使用比例字体显示的,因此可以显示的实际字符数由 Text 参数指定的所有字符的总宽度决定。
在增加状态栏文本宽度的同时,也减少了该进度表的长度。 如果文本长于状态栏,并且 Action 参数为 acSysCmdInitMeter, 则 SysCmd 方法将忽略文本,并且不会在状态栏中显示任何内容。 如果文本长于状态栏,并且 Action 参数为 acSysCmdSetStatus, 则 SysCmd 方法将截断文本以适合状态栏。
不能将状态栏文本设置为零长度字符串 (" ")。 如果要从状态栏中删除现有文本,请将 Text 参数设置为单个空格。 下面的示例说明了从状态栏中删除文本的方法:
varReturn = SysCmd(acSysCmdInitMeter, " ", 100)
varReturn = SysCmd(acSysCmdSetStatus, " ")
如果使用 acSysCmdSetStatusAction 参数调用 SysCmd 方法来设置文本时,如果已显示进度表,则 SysCmd 方法会自动删除该表。
使用其他操作调用 SysCmd 方法以确定有关 Access 的系统信息,包括 Access 正在运行的版本号、是否为运行时版本、Access 可执行文件的位置、命令行中指定的 /profile 参数的设置以及与 Access 关联的 .ini 文件的名称。
注意
Access 的常规设置和自定义设置现在都存储在 Windows 注册表中,因此你可能不需要将 .ini 文件与 Access 应用程序配合使用。 acSysCmdIniFileAction 参数的存在是为了与早期版本的 Access 兼容。
使用 acSysCmdGetObjectStateAction 参数和 ObjectType 和 ObjectName 参数调用 SysCmd 方法,以返回指定数据库对象的状态。 对象可以是四种状态之一: 未打开或不存在、 打开、 新建,或更改但没有保存。
例如,如果您要设计一个在表中插入新字段的向导,您需要确定表结构是否已被更改但还未保存,以便可以在修改它的结构之前进行保存。 您可以检查返回 SysCmd 方法以确定表的状态的值。
具有 acSysCmdGetObjectStateAction 参数的 SysCmd 方法可以返回以下常量的任何组合。
常量 | 数据库对象的状态 | 值 |
---|---|---|
acObjStateOpen | 打开 | 1 |
acObjStateDirty | 设计更改后未保存 | 2 |
acObjStateNew | 新增内容 | 4 |
注意
如果 ObjectName 参数引用的对象未打开或不存在, 则 SysCmd 方法返回值零。
将 ActiveX 控件添加到窗体时,可以使用以下代码在表达式中使用 ActiveX 控件。
SysCmd 14, "<ActiveX Control GUID>"
注意
- 将 替换为
<ActiveX Control GUID>
全局唯一标识符 (GUID) ,用于标识要在表达式中启用的 ActiveX 控件。 - 在将 ActiveX 控件添加到允许的控件列表中后,无法删除该控件。
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。