Если пользователь # 1 удаляет запись в нашей базе данных Access 2007 (SQL Server ODBC Linked Tables), другие пользователи, вероятно, покажут # Удалено # в этой записи (в форме представления таблицы данных) , В некоторых случаях это может вызвать проблемы, потому что у меня есть код, который выполняется в текущем событии формы и просто предполагает, что существует действительная запись (или новая запись).Обнаружить, если текущая запись удалена по форме ограничения доступа
Есть ли надежный способ определить, была ли удалена текущая запись? Я хотел бы, чтобы обернуть его в функции, как это:
Public Function IsRecordDeleted(ByRef r As DAO.Recordset)
'what goes here?
End Function
Я нашел свойство RecordStatus в ссылке DAO в MSDN, но это свойство оказывается справедливым только если RecordSet сконфигурирован для пакетного обновления. Когда я пытаюсь проверить его значение, я получаю: Ошибка времени выполнения 3251. Операция не поддерживается для этого типа объекта.
Я фактически разместил на другом форуме эту же проблему год или два назад. Рекомендации, данные не работают:
- DCOUNT()
- Закладка и NoMatch из записей
- Проверка #Deleted в ПК или поле FK
Хороший вопрос, но я не думаю, что он будет работать с Requery в текущем событии. Это вызовет бесконечный цикл. Однако, если бы я обнаружил удаленную запись, это правда, что мне пришлось бы требовать разрешения проблемы, я думаю. – HK1
@ HK1 Это может строго не помогать, но я всегда советую использовать сервер db в качестве исходного кода, чтобы избежать использования связанных связанных DAO связанных форм. Перейдите с помощью ADO для запуска любых запросов на стороне сервера, а не из локального, а также для кодирования несвязанного решения для формы. –
Спасибо за рекомендацию. Я использую ADO как последнее средство. Если DAO и ODBC делают то, что мне нужно, я думаю, что я не вижу необходимости меняться. Но я понимаю, что ADO обычно считается более стабильным и надежным. – HK1