Ошибка доступа с отключенным набором записей ADO - PullRequest
0 голосов
/ 23 августа 2011

Я тестирую форму таблицы данных, которая связана с отключенным набором записей ADO. Когда я редактирую любую часть какой-либо записи, после обновления появляется следующее сообщение об ошибке:

"Данные были добавлены в базу данных, но данные не будут отображаться в формы, поскольку она не удовлетворяет критериям в базовом источнике записей. "

Я использую курсор на стороне клиента, так как это единственный способ отключить и сохранить набор записей. Кроме того, у меня есть код, который восстанавливает соединение во время обновления, а затем снова отключает его.

Я не использую триггеры или хранимые процедуры. Я использую SQL Server 2008 Express и Access 2007 (все обновления установлены) в Windows XP SP3. Я использую объекты данных ActiveX 2.8.

Я нашел эту статью и установил исправление. Я перезагрузил компьютер, но проблема сохраняется. http://support.microsoft.com/kb/961451

Есть идеи?

Edit1:
Пример кода:

'rst is a form level variable (ADO Recordset Object)
With rst
    Set .ActiveConnection = gCon 'Global ADO Connection Object
    .Source = "SELECT i.*, c.lft FROM tblInventory AS i LEFT JOIN tblCat AS c ON i.catid = c.catid"
    .LockType = adLockPessimistic
    .CursorType = adOpenDynamic
    .Open
End With

Set Me.Recordset = rst
Me.UniqueTable = "tblInventory"
rst.ActiveConnection = Nothing
gCon.Close

1 Ответ

0 голосов
/ 24 августа 2011

Похоже, я нашел удовлетворительное решение. Это взято из ASPAlliance .

Для этого нам нужно установить для свойства ResyncCommand формы в представлении конструктора оператор SQL.

Например: команда повторной синхронизации:

Select * From tblName where FieldName = ?

Если Rowsource содержит хранимую процедуру с несколькими таблицами, соединенными вместе, то свойство Resync Command формы должно быть установлено в оператор SQL, который выбирает те же поля, что и хранимая процедура, и параметризует первичный ключ таблицы обозначается как Уникальная таблица.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...