(转)SysCmd 方法
时 间:2012-01-02 19:53:51
作 者:何必见戴 ID:13894 城市:厦门
摘 要:SysCmd 方法包含了很多实用功能,比如进度条(大爱啊)~
正 文:
使用 SysCmd 方法可以在状态栏上显示一个进度表或可选的指定文本,返回有关 Microsoft Access 及其相关联文件的信息或者返回指定数据库对象的状态(以指示该对象是否已打开,是否是一个新对象或是否已被更改但还没有保存)。Variant。
expression.SysCmd(Action, Argument2, Argument3)
expression 必需。此表达式返回“应用于”列表中的其中一个对象。
Action 必需 AcSysCmdAction。下列固有常量之一,用于标识要采取操作的类型。下列常量集适用于进度表。如果这些操作执行成功,SysCmd 方法将返回一个 Null。否则,Microsoft Access 会产生运行时错误。
AcSysCmdAction 可以是下列这些 AcSysCmdAction 常量之一。
acSysCmdAccessDir。返回 Msaccess.exe 所在目录的名称。
acSysCmdAccessVer。返回 Microsoft Access 的版本号。
acSysCmdClearHelpTopic
acSysCmdClearStatus。下列常量提供了有关数据库对象状态的信息。
acSysCmdGetObjectState。返回指定数据库对象的状态。当使用该 action 值时,您必须指定 argument1 和 argument2。
acSysCmdGetWorkgroupFile。返回工作组文件 (System.mdw) 的路径。
acSysCmdIniFile。返回与 Microsoft Access 相关联的 .ini 文件的名称
acSysCmdInitMeter。初始化进度表。当使用该操作时,您必须指定 argument1 和 argument2 参数。
acSysCmdProfile。当用户从命令行启动 Microsoft Access 时,返回其指定的 /profile 设置。
acSysCmdRemoveMeter。删除进度表。
acSysCmdRuntime。如果运行时版本的 Microsoft Access 正在运行,将返回 True (–1)。
acSysCmdSetStatus。将状态栏文字设置为 text 参数。
acSysCmdUpdateMeter。使用指定值更新进度表。当使用该操作时,您必须指定 text 参数。
Argument2 可选 Variant。字符串表达式,用于标识要在状态栏以左对齐方式显示的文字。当 action 参数是 acSysCmdInitMeter、acSysCmdUpdateMeter 或 acSysCmdSetStatus 时,该参数是必需的;对于其他 action 参数值,该参数是无效的。
注释 在为 Action 参数指定 acSysCmdGetObjectState 值时,必须指定相应的 acObjectType。
acTable
acQuery
acForm
acReport
acMacro
acModule
acDataAccessPage
acDefault
acDiagram
acServerView
acStoreProcedure
对于其他 action 参数值,该参数是无效的。
Argument3 可选 Variant。数值表达式,用于控制进度表的显示。当 action 参数是 acSysCmdInitMeter 时,该参数是必需的;对于其他 action 参数值,该参数是无效的。
注释 在为 Action 参数指定 acSysCmdGetObjectState 值时,必须指定数据库对象的名称。
说明
例如,如果您正在创建一个向导,该向导可创建新的窗体,那么可以使用 SysCmd 方法显示进度表,以便在向导建立窗体时指示其进度。
通过调用各种进度表操作的 SysCmd 方法,您可以在状态栏中为具有已知持续时间或步骤数的操作,显示进度表,并将其更新为指示操作的进度。
若要显示状态栏中的进度表,您必须首先调用 acSysCmdInitMeter action 参数以及 text 和 value 参数的 SysCmd 方法。当 action 参数是 acSysCmdInitMeter 时,value 参数将是进度表的最大值,100 %。
若要将进度表更新为显示操作的进度,请调用 acSysCmdUpdateMeter action 参数以及 value 参数的 SysCmd 方法。当 action 参数是 acSysCmdUpdateMeter 时,SysCmd 方法将使用 value 参数计算由进度表显示的百分比。例如,如果您将最大值设置为 200,然后使用值 100 更新该进度表,那么将只填充该表的前半部分。
您也可以更改显示在状态栏上的文字,方法是调用 acSysCmdSetStatus action 参数和 text 参数的 SysCmd 方法。例如在排序过程中,您可以将文字更改为“正在排序中...”。当排序完成后,您可以通过删除该文字重置状态栏。text 参数可以包含大约 80 个字符。因为状态栏文字是通过使用非等宽字体显示的,因此,您能够显示的实际字符数将由 text 参数指定的所有字符的总宽度决定。
当您增大状态栏文字的宽度时,将会减小表的长度。如果文字的长度超过状态栏,并且 action 参数是 acSysCmdInitMeter,那么 SysCmd 方法将忽略文字,而不会在状态栏上显示任何内容。如果文字的长度超过状态栏,并且 action 参数是 acSysCmdSetStatus,那么 SysCmd 方法将截断文字以适合状态栏。
您不能将状态栏文字设置为零长度字符串 (" ")。如果要从状态栏删除现有文字,请将 text 参数设置为单个空格。下例说明了如何从状态栏删除文字:
varReturn = SysCmd(acSysCmdInitMeter, " ", 100)
varReturn = SysCmd(acSysCmdSetStatus, " ")
如果在通过调用 acSysCmdSetStatus action 参数的 SysCmd 方法设置文字时,已显示进度表,那么 SysCmd 方法将自动删除该表。
调用其他操作的 SysCmd 方法,以便确定有关 Microsoft Access 的系统信息,其中包括正在运行的 Microsoft Access 的版本号、它是否是运行时版本、Microsoft Access 可执行文件的位置、在命令行中指定的 /profile 参数的设置以及与 Microsoft Access 相关联的 .ini 文件的名称。
注释 现在,Microsoft Access 的常规设置和自定义设置被保存在 Windows 注册表中,因此您可能不需要 Microsoft Access 应用程序带有 .ini 文件。acSysCmdIniFile action 参数的存在是为了与早期版本的 Microsoft Access 兼容。
调用 acSysCmdGetObjectState action 参数和 objecttype 及 objectname 参数的 SysCmd 方法,以便返回指定数据库对象的状态。一个对象可以是以下四种可能的状态之一:未打开或不存在、打开、新或者更改后尚未保存。
例如,如果您正在设计将新字段插入表中的向导,则需要确定表结构是否在更改后没有保存,以便您可以在修改它的结构之前进行保存。您可以检查由 SysCmd 方法返回的值以确定表的状态。
acSysCmdGetObjectState action 参数的 SysCmd 方法可以返回下列常量的任意组合:
常量 数据库对象的状态 值
acObjStateOpen 打开 1
acObjStateDirty 更改后未保存 2
acObjStateNew 新建 4
注释 如果由 objectname 参数引用的对象未打开或不存在,那么 SysCmd 方法将返回零值。
在窗体中添加 ActiveX 控件后,下列代码可用于在表达式中启用 ActiveX 控件:
SysCmd 14, "<ActiveX Control GUID>"
注释 使用标识需要在表达式中启用的 ActiveX 控件的全局唯一标识符 (GUID) 替换 <ActiveX Control GUID>。
注释 将 ActiveX 控件添加到许用控件列表后,就不能删除 ActiveX 控件。
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)