每个事件处理程序都有一个控制它的状态参数。大部分 Complete 事件都有错误参数用于报告引起事件发生的操作是否成功。另外还有一个对象参数,用于标识操作所针对的 ADO 对象。

参数同时被传递到 Will 事件以便用于挂起操作。这样您就有机会检查参数并确定操作是否应该完成。

某些事件处理程序有原因参数,该参数可以提供有关事件发生原因的详细信息。

状态参数

当事件处理程序例程被调用时,状态参数将被设置为下列信息值之一。

说明

adStatusOK

引发事件的操作已成功发生。

adStatusErrorsOccurred

引发事件的操作未成功发生,或 Will 事件取消了操作。有关细节,请单击错误参数。

adStatusCantDeny

Will 事件无法请求取消即将开始的操作。

 

在事件处理程序例程返回之前,应当保持状态参数不变,或将其设置为下列请求值之一。

说明

adStatusUnwantedEvent

请求该事件处理程序不接收以后的通知。

adStatusCancel

请求取消即将开始的操作。

 

由事件类型所决定,当事件处理程序被调用时,状态参数可以取下列值之一。

事件类型

Will

adStatusOK, adStatusCantDeny

Complete

adStatusOK, adStatusErrorsOccurred

 

取决于事件类型,在事件处理程序返回时,状态参数可以取下列值之一。

事件类型

Will

adStatusOK, adStatusCancel, adStatusUnwantedEvent

Complete

adStatusOK, adStatusUnwantedEvent

 

错误参数

错误参数是对 ADO Error 对象的引用。状态参数为 adStatusErrorsOccurred 时,该对象包含操作失败的详细信息。

对象参数

对象参数是对所操作的 ADO 对象的引用。例如,可以同时打开几个 Connection 对象,但一次只能打开一个 Disconnect 事件处理程序。如果所有连接关闭,将对象参数设置为关闭的 Connection 对象,即可调用 Disconnect 事件处理程序。

原因参数

原因参数(adReason)提供有关事件发生原因的附加信息。带有 adReason 参数的方法可以被多次调用 — 甚至被相同的操作调用,但每次调用都有不同原因。

例如,WillChangeRecord 事件处理程序被某些操作调用,这些操作将进行或撤消记录的插入、删除或修改。adReason 参数被作为只处理特殊事件的筛选器来使用。

必须在 adStatus 参数中返回 adStatusUnwantedEvent,要求不带 adReason 参数的事件处理程序停止接收事件通知。但是,带有 adReason 参数的事件处理程序可能会接收几个通知,每个通知有不同原因。所以,对每个不同原因产生的通知,必须返回 adStatusUnwantedEvent

例如,假设 WillChangeRecord 事件处理程序是用 Microsoft® Visual Basic® 编写的。如果您以后不想接收任何进一步的通知,只需编写如下代码:

Set adStatus = adStatusUnwantedEvent

但是,如果要处理其行将被删除的事件,但取消所有其他原因所带来的通知时,请编写如下程序:

if (adReason = adRsnDelete)

'处理此原因引起的事件。

...

else

'停止接收任何其他原因引起的事件。

Set adStatus = adStatusUnwantedEvent

...