With ADO, the RS.Delete is still functional. Therefore, if you wish, you may delete records with something similar to the following:
PLEASE NOTE:It is necessary to include adAffectCurrent when you issue the Delete to eliminate the possibility of deleting records other than the one which you are on and intending to delete.
Private Sub cmdDelete_Click()rs.Delete adAffectCurrent
rs.MoveNext
If rs.EOF Then
rs.MoveLast
Else
FillFields
End If
End Sub
However, for the purposes of this application, rather than using the RS.Delete, moving off of the record and subsequently refilling the fields(Above), we will use Oracle Stored Procedures (See Deleting Records under SQL PLUS: Creating Oracle Stored Procedures)
to centralize processing at the Server level. This will keep network traffic to a minimum.
In the Click Event of the Delete button, the code below first Declares my Variable to identify the record to be deleted and sets it to the appropriate Text Box. Once the Active Connection has been confirmed, it then sets the Command Text equal to the Stored Procedure. Subsequently, it then Executes the Store Procedure, indicating that only the Current Record will be affected and provides the Variable containing the appropriate data from the Text Box. Lastly, a Requery and a FillFields is performed, placing the user at the First Record, enabling them to see the updated Recordset immediately.
Private Sub cmdDelete_Click()Dim MyCustomerID As Integer
MyCustomerID = CInt(txtCustomerID.Text)
mdkcmd.ActiveConnection = conn
mdkcmd.CommandText = "DeleteCustomer"
mdkcmd.Execute adAffectCurrent, MyCustomerID
rs.Requery
If rs.RecordCount = 0 Then
MsgBox "There Are No Records In This Table"
Else
rs.MoveFirst
FillFields
End If
End Sub