如果用户#1删除了我们的Access 2007数据库(SQL Server ODBC链接表)中的记录,其他用户可能会在该记录中显示#Deleted#(在数据表视图窗体上) 。在某些情况下,这可能会导致问题,因为我拥有在窗体当前事件上运行的代码,并简单地假定存在有效记录(或新记录)。如果当前记录在访问绑定表中被删除
是否有任何可靠的方法来检测当前记录是否已被删除?我想它包在像这样的功能:
Public Function IsRecordDeleted(ByRef r As DAO.Recordset)
'what goes here?
End Function
我发现在MSDN中的DAO参考RECORDSTATUS属性,但该属性出现如果记录配置为批量更新仅是有效的。当我尝试检查它的值时:运行时错误3251 - 此类对象不支持操作。
我实际上在一年或两年前在另一个论坛上发布了关于这个同样的问题。给出的建议不工作:
- DCOUNT()
- 书签和记录的NOMATCH
- 在PK或FK场
好问题,但我不认为它会适用于当前事件中的Requery。那会导致无限循环。但是,如果我确实检测到删除的记录,那么我确实需要重新查询才能解决问题。 – HK1
@ HK1这可能不会有什么帮助,但我总是建议使用db服务器作为避免使用DAO链接绑定表单的后端。与ADO一起运行任何查询服务器端而不是本地服务器,并且为表单提供未绑定的解决方案。 –
感谢您的推荐。我倾向于使用ADO作为最后的手段。如果DAO和ODBC做我需要的东西,我想我没有看到需要改变。但是我意识到ADO通常被认为更稳定和更强大。 – HK1