Ms access 在窗体的记录集上使用批处理冲突?

Ms access 在窗体的记录集上使用批处理冲突?,ms-access,vba,Ms Access,Vba,为了获得有关MS Access 2010项目中导致写入冲突的列、表或行的更多信息,我编写了以下代码: Private Sub Form_BeforeInsert(Cancel As Integer) Call printCollisionInfo(Me.Recordset, Me.name) End Sub Private Sub Form_BeforeUpdate(Cancel As Integer) Call printCollisionInfo(Me.Recordset,

为了获得有关MS Access 2010项目中导致写入冲突的列、表或行的更多信息,我编写了以下代码:

Private Sub Form_BeforeInsert(Cancel As Integer)
    Call printCollisionInfo(Me.Recordset, Me.name)
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Call printCollisionInfo(Me.Recordset, Me.name)
End Sub
printCollisionInfo方法是:

但是当调用rst.BatchCollisionCount时,我得到

是因为表单不执行dbUpdateBatch,而是执行其他类型的更新吗?我可以设置表单的更新类型吗?是否有其他方法查看包含数据值或触发冲突的数据的SQL?

Recordset.BatchCollisionCount属性仅对ODBCDirect工作区有效

这在Access 2010联机帮助中有说明,但遗憾的是MSDN页面上没有说明:

查看该页面上的示例中记录集是如何设置的。这与绑定表单的记录集的距离差不多

以下是关于ODBCDirect的介绍:

这项技术很古老,但事实上,你的问题在我的谷歌搜索中是11,这给了你一个关于有多少人使用它的提示


我建议您提出一个新问题,描述您的设置和出现的错误。

尝试使用显式属性rst.BatchCollisionCount.Value
Public Sub printCollisionInfo(rst As Recordset, formName As String)
    Dim msg As String
    msg = Now & " From " & formName & ": " & rst.BatchCollisionCount & " collisions"

    Debug.Print msg
End Sub
"Operation is not supported for this type of object"