Hello. The code below is for a program that uses the classis Access sample database called Biblio.mdb . The controls on the form are: 1 commmand button, 1 Datagrid control, 1 textbox, and 1 ADO Data Control.

Option Explicit

Private Sub Form_Load()
 txtUserQuery.Text = Adodc1.RecordSource
 Adodc1.Caption = Adodc1.RecordSource
End Sub

Private Sub cmdQuery_Click()
 On Error Resume Next
 cmdQuery.Enabled = False
 Adodc1.RecordSource = txtUserQuery.Text
 Call Adodc1.Refresh
 Adodc1.Caption = Adodc1.RecordSource
End Sub

Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
 cmdQuery.Enabled = True

My question is, why use the event MoveComplete? How does it differ from
RecordsetChangeComplete and RecordChangeComplete??? I've already read
their definition but I can't tell them apart. I've also tried
substituting it with the other two Events but they don't work. Can you
give me a simple program that uses RecordsetChangeComplete and
RecordChangeComplete? If not, please explain them in layman's terms.
Beginner here. thanks guys!!!!
End Sub