ADO WillChangeField and FieldChangeComplete Events

Home | About me | EXCEL VB Programming (XL97-2003) | ACCESS Programming | EXCEL VB.Net Programming | EXCEL Spreadsheet Functions Material Management  |  Guestbook
 

ADO WillChangeField and FieldChangeComplete Events

The WillChangeField Event

The WillChangeField event is triggered before the values of one or more Field Objects are changing.

Note: Before this event returns, set the status parameter to adStatusCancel to cancel the operation that caused this event. 

The FieldChangeComplete Event

The FieldChangeComplete event is triggered after the values of one or more Field Objects have been changed.

Note: Before this event returns, set the status parameter to adStatusUnwantedEvent to prevent subsequent notifications. 

Note: The WillChangeField event and the FieldChangeComplete event may occur when you set the Value property and calls the Update method with field and value array parameters.

Syntax

WillChangeField numfields,fields,status,objRs
FieldChangeComplete numfields,fields,objErr,status,objRs 

 

Parameter

Description

numfields The number of Field objects in fields
fields An array that contains Field objects with changes
status An EventStatusEnum value that indicates the status of the execution of the event
objErr The name of an Error object that describes the error if status is set to adStatusErrorsOccurred, otherwise it is not set
objRs The name of the Recordset Object that triggered this event

Example


'use the WithEvents keyword to designate that events
'can be handled by this Recordset object
Dim WithEvents objRecSet As ADODB.Recordset

'Note how the object name, objRecSet, is incorporated into the event Sub name
Private Sub objRecSet_FieldChangeComplete(cFields As Long, Fields As Variant, _
   ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, _
   ByVal pRecordset As ADODB.Recordset)

'place any code you desire here, for example
If adStatus = adStatusErrorsOccurred Then
   Dim objError As ADODB.Error
   For Each objError in pRecordset.Errors
      Debug.Print vbtab; objError.Description
   Next
End If
End Sub

 

OR,

Private Sub objRecSet_WillChangeField(cFields As Long, Fields As Variant, _
   adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)


' place any code you desire here, for example
Debug.Print cFields & " will be modified"

End Sub

EventStatusEnum Values

Constant Value

Description

adStatusOK 1 The operation that caused the event was successful
adStatusErrorsOccurred 2 The operation that caused the event failed
adStatusCantDeny 3 The operation that caused the event cannot be cancelled
adStatusCancel 4 The operation that caused the event is cancelled
adStatusUnwantedEvent 5 Prevents subsequent notifications before the event method has finished executing