У меня возникает прерывистая проблема с приложением Excel 2010 front-end, Access 2010. Он используется 5-10 пользователями одновременно. В последнее время пользователи начали периодически получать следующее сообщение об ошибке:«Системный ресурс превышен» при обновлении набора записей и, возможно, в других точках
Run-time error '3035': System resource exceeded.
Иногда кнопка Debug недоступна, так что я не могу перейти к коду, который вызвал ошибку, но когда он доступен кликать, он принимает мне на следующий код:
'Open connection to back end DB
Set db = OpenDatabase(dbPath)
'Open a recordset of a table
Set RS = db.OpenRecordset(Tbl)
'loop through rows in a 2D array
For i = FR To LR
RS.AddNew
'loop through columns of the 2D array
For j = 1 to LC
'set values for various fields in the new record, using values from the array
Next
RS.Update
Next
в данном случае RS.Update
помечается как линия, которая вызывает ошибку.
Что странно в том, что эта проблема приходит и уходит; пользователи будут повторно получать его при попытке отправить определенный набор данных, а затем несколько часов спустя, когда они попытаются снова отправить тот же набор данных, операция будет успешной без ошибки. Это также озадачивает, что иногда доступна кнопка отладки, а иногда и нет.
Один из вопросов может быть размером с обратным концом доступа; в настоящее время ~ 650 МБ, и мы не начали получать эти сообщения, пока не выросли до 600 МБ.
Любые идеи относительно того, что может быть причиной этого? Различные хиты Google показывают, что эта проблема иногда возникает, когда в запросе соединения слишком много полей, но это всего лишь набор записей таблицы, а не запрос соединения.
Сколько записей добавляется и сколько строк в существующей таблице? Пробовали ли вы (например) открытие набора записей таким образом, чтобы изначально у него не было строк («выберите из таблицы A, где 1 = 0»), а затем добавьте строки? Или выполнять пакетные обновления вместо каждой записи? Не большой человек доступа, так что просто мысли с головы ... –
@TimWilliams, не очень много записей - один раз ошибка произошла, цикл For был только итерацией по 13 записям. Существующая таблица имеет ~ 20K строк. – sigil
Если все, что вы делаете, это добавление записей, попробуйте 'dbAppendOnly' (= 8), например. 'Установите RS = db.OpenRecordset (Tbl, dbAppendOnly)', чтобы Access не пытался сначала прочитать записи. – SeanC