2008-09-12 4 views
2

Я получаю следующее сообщение об ошибке в MS Access ADP, при попытке добавить запись в форме связаны с MS SQL Server 2000 таблица:MS Access ADP Autonumber

Ошибка выполнения «31004»:

Значение поля (AutoNumber) не может быть восстановлено до сохранено.

Сохраните запись, содержащую поле (AutoNumber) до , выполняющее это действие. примечание: извлечено на самом деле написано неправильно в ошибке.

Кто-нибудь знает, что это значит?

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

ответ

2

Прежде всего, если вы собираетесь посмотреть обмен экспертами - сделайте это в FireFox, вы увидите разблокированные ответы внизу страницы.

Во-вторых, у вас есть подформация на этой форме, которая использует поле autonumber/key в основной форме? Вам необходимо сохранить данные, находящиеся в этой субформации (т. Е. Имеющие собственный ключ), до того, как будет сохранена основная форма. Вы можете оказаться в тупике A и B, требуя, чтобы друг друга сначала сохраняли.

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

0

Вы пытаетесь присвоить значение поля Identity переменной или чем-то еще до того, как вы сохранили запись?

По какой-то причине ваше приложение пытается прочитать значение поля идентификации до того, как запись была сохранена, что и создает это поле идентификации. Другими словами, для поля Autonumber не существует значения, пока строка не будет сохранена.

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

0

Вы должны добавить несколько строк кода, чтобы показать нам, как вы управляете своими данными и что именно вы делаете. Но я подозреваю, что проблема связана с обновлением набора записей. можете ли вы определить, когда создается значение autonumber? Доступно ли это в виде формы? Можете ли вы добавить элемент управления для отображения этого значения, чтобы проверить, как он создается при добавлении новой записи? Правильно ли обновлен базовый набор записей? Можете ли вы добавить что-то вроде me.recordset.update в некоторых событиях формы: я бы попытался использовать OnCurrent ...