A family of Microsoft relational database management systems designed for ease of use.
You can examine the RecordsAffected property of a DAO querydef object to determine how many rows have been affected by an 'action' query. My public databases folder at:
https://onedrive.live.com/?cid=44CC60D7FEA42912&id=44CC60D7FEA42912!169
includes a Transaction.zip demo which rolls back a transaction if the second of two INSERT INTO statements fails. If the code is amended as below to remove the transaction processing, but instead examines the RecordsAffected property and returns 'Yes' if this is greater than zero, 'No' otherwise:
Public Sub InsertRows(varFamily1 As Variant, varFamily2 As Variant, varFamilyMember As Variant)
Dim strSQL As String
Dim strCriteria As String
Dim qdfTemp As DAO.QueryDef
' insert a new family row if does not already exist
strSQL = "INSERT INTO Families(FamilyName) " & _
"VALUES(""" & varFamily1 & """)"
strCriteria = "FamilyName = """ & varFamily1 & """"
If Not IsNull(varFamily1) Then
If IsNull(DLookup("FamilyName", "Families", strCriteria)) Then
CurrentDb.Execute strSQL, dbFailOnError
End If
End If
' insert a new row into FamilyMembers if values entered in both controls
strSQL = "INSERT INTO FamilyMembers(FamilyName, Firstname) " & _
"VALUES(""" & varFamily2 & """,""" & varFamilyMember & """)"
If Not IsNull(varFamily2) And Not IsNull(varFamilyMember) Then
Set qdfTemp = CurrentDb.CreateQueryDef("", strSQL)
On Error Resume Next
qdfTemp.Execute dbFailOnError
On Error Goto 0
' confirm that new family member row was inserted
If qdfTemp.RecordsAffected > 0 Then
Forms("frmTransactionDemo").txtRowInserted = "Yes"
Else
Forms("frmTransactionDemo").txtRowInserted = "No"
End If
End If
End Sub
In this example we could of course simply examine the Err.Number property, but if for instance we wanted to determine if a known number of rows were inserted, examining the RecordsAffected property would enable us to do this.