ADO事件[高级内容]

并非所有的ADO Power User都意识到有一些事件,可以为它们编写代码,这些事件与Connection和Recordset对象特别相关。 如果人们知道这些事件,则对如何访问它们并不完全直观。 在下面,请找到ADO记录集和连接对象公开的事件列表。 我还将演示ADO程序员可以利用这些有价值的工具的机制。 对这些事件的深入讨论远远超出了本技巧的范围。 我的唯一目的是让您了解它们的存在,并演示您可以利用这些重要事件的方法。

  1. ADO Recordset对象的事件:
    1. FetchProgress()
    2. FetchComplete()
    3. WillChangeField()
    4. FieldChangeComplete()
    5. 将移动()
    6. MoveComplete()
    7. EndOfRecordset()
    8. WillChangeRecord()
    9. RecordChangeComplete()
    10. WillChangeRecordset()
    11. RecordsetChangeComplete

  2. ADO连接对象的事件:
    1. WillConnect()
    2. ConnectComplete()
    3. 断开()
    4. WillExecute()
    5. ExecuteComplete()
    6. BeginTransComplete()
    7. CommitTransComplete()
    8. RollbackTransComplete()
    9. InfoMessage()

  3. 如何访问ADO事件过程。 访问ADO事件涉及的过程涉及事件接收器。 要沉入ADO事件,您必须:
    1. 设置对Microsoft ActiveX数据对象XX库的引用。
    2. 创建一个类模块,可以是独立的类模块或表单的类模块。
    3. 将WithEvents变量添加到模块,最好添加到声明部分。 WithEvents是一个关键字,它指定一个对象变量将用于响应ActiveX对象触发的事件。 典型的WithEvents声明如下:
      Private WithEvents cnn As ADODB.Connection
      Private WithEvents rst as ADODB.Recordset
    4. 将WithEvents添加到类模块后,VBA编辑器会将事件接收器变量添加到编辑器的下拉对象列表中。 从“对象”下拉列表中选择“事件接收器变量”后,“过程”下拉列表中将显示您可以响应的相关事件。 要为该事件接收器创建一个或多个事件过程,请在过程中编写代码以对该事件做出反应。
      Private Sub cnn_ConnectComplete(ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pConnection As ADODB.Connection)
      'The following code segment exists in a Form's Class Module
      'display a Connected Message and enable specific Controls.
      'disable the Connect Button and enable an Execute Button
      Me![lblConnect].Caption = "Connected to SQL Server Godzilla"
      Me![cmdConnect].Enabled = False
      Me![cmdExecute].Enabled = True
      End Sub
    5. 在代码中的某个位置(例如在表单的Load Event中),实例化事件接收器变量。 此步骤实际上与上一步骤不合顺序。 在上一步中演示代码是合乎逻辑的:
      Set rst = New ADODB.Recordset
    6. 在代码中的其他位置(例如,在窗体的UnLoad事件中),通过将事件接收器设置为空来销毁事件接收器。
      Set rst = Nothing

From: https://bytes.com/topic/access/insights/691618-ado-events-advanced-content

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值