ADO WillMove and MoveComplete Events
The WillMove Event
The WillMove event is triggered before an operation changes the
current position in the Recordset.
Note: Before this event returns, set the status parameter to
adStatusCancel to cancel the operation that caused this event or set it
to adStatusUnwantedEvent to prevent subsequent notications.
The MoveComplete Event
The MoveComplete event is triggered after the current position in the
Recordset has changed.
Note: Before this event returns, set the status parameter to
adStatusUnwantedEvent to prevent subsequent notifications.
Note: The WillMove event or MoveComplete event may occur when
calling one of the following Recordset method: Open, Move, MoveFirst,
MoveLast, MoveNext, MovePrevious, AddNew, and Requery. These events may
also occur because of the following properties: Filter, Index, Bookmark,
AbsolutePage, and AbsolutePosition.
Syntax
WillMove reason,status,objRs
MoveComplete reason,objErr,status,objRs
|
Parameter |
Description |
reason |
An EventReasonEnum value that specifies the
reason for this event
|
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_WillMove(adReason
As ADODB.EventReasonEnum, _
adStatus As ADODB.EventStatusEnum, _
ByVal pRecordset As ADODB.Recordset)
'place any code you desire here, for example
If adReason = adRsnRequery Then
adStatus = adStatusCancel
End If
End Sub OR,
Private Sub
objRecSet_MoveComplete(adReason
As ADODB.EventReasonEnum, _
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
|
EventReasonEnum Values
Constant |
Value |
Description |
adRsnRequery |
7 |
An operation requeried the Recordset |
adRsnMove |
10 |
An operation moved the record pointer within
the Recordset |
adRsnMoveFirst |
12 |
An operation moved the record pointer to the
first record in the Recordset |
adRsnMoveNext |
13 |
An operation moved the record pointer to the
next record in the Recordset |
adRsnMovePrevious |
14 |
An operation moved the record pointer to the
previous record in the Recordset |
adRsnMoveLast |
15 |
An operation moved the record pointer to the
last record in the Recordset |
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 |
|