2010-06-09 4 views
6

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

Как это:

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 ядро ​​базы данных Access 12.0 объектов библиотеки.

ответ

12

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

1

Использование 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 

 Смежные вопросы

  • Нет связанных вопросов^_^