Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 推荐资源

(转)SysCmd 方法

时 间:2012-01-02 19:53:51
作 者:何必见戴   ID:13894  城市:厦门
摘 要:SysCmd 方法包含了很多实用功能,比如进度条(大爱啊)~
正 文:

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源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助