CurrentDb.RecordsActed возвращает 0. Почему? - PullRequest
9 голосов
/ 09 июня 2010

Если я использую RecordsActed с CurrentDb.Execute, он всегда возвращает 0. Если я сначала создаю экземпляр объекта Database, он работает правильно Почему?

Как это:

Dim Db As Database
Set Db = CurrentDb

Db.Execute "DELETE * FROM [Samples] WHERE Sample=5"
If Db.RecordsAffected = 0 Then
  MsgBox "Error"
End If

Вместо:

CurrentDb.Execute "DELETE * FROM [Samples] WHERE Sample=5"
If CurrentDb.RecordsAffected = 0 Then
  MsgBox "Error"
End If

Я использую Access 2007 и библиотеку объектов ядра базы данных Microsoft Office 12.0 Access.

Ответы [ 2 ]

15 голосов
/ 09 июня 2010

Каждый раз, когда вы используете CurrentDB, это новый экземпляр.

3 голосов
/ 29 ноября 2015

Используйте With. Измените свой код на:

Dim Db As Database
Dim recordAffect = Integer
Set Db = CurrentDb
With Db
  .Execute "DELETE * FROM [Samples] WHERE Sample=5"
  recordAffect = .RecordsAffected
  'If Db.RecordsAffected = 0 Then
  If (recordAffect = 0)  Then
     MsgBox "Error"
  End If
End With
...