2015-09-15 2 views
0

Хотя я нашел несколько результатов Google, которые близки к моему вопросу, кажется, что никто не смог им помочь.MS Access - первая запись в таблице перезаписывается по форме закрыть

У меня есть более сложная форма, которую я упростил, пытаясь сузить проблему.

У меня есть форма «Редактировать инвентарь», которая позволяет редактировать таблицу «Активы».

В форме «Редактировать инвентарь» представлена ​​подформация, отображающая таблицу активов и несколько разных полей.

То, что отображается в Subform, основано на том, что выбрано в поле Combo «cboRoomSelect». cboRoomSelect использует свой идентификатор RoomID для поиска записей в таблице «Активы»

Все это прекрасно работает, однако, закрыв форму самой первой записью (которая по какой-либо причине является AssetID 5 в «Таблице активов»), «RoomID» 'изменяется на последний выбранный идентификатор RoomID в поле cboRoomSelect.

У меня нет ни малейшего представления о том, как исправить это. Это происходит только для первой записи и только после закрытия записи.

В результате запись пятерки всплывает в комнатах, в которых она не принадлежит.

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

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

https://drive.google.com/file/d/0BxQbzHNvYazQY3NXWDRZV1lwTjA/view?usp=sharing Ссылка на документ, Выселение 'Edit Form Test'

Это документ MS Access, форма не имеет кода прилагается.

+0

Не обойтись без просмотра кода. Шаг 1 будет проверять все методы, вызываемые при закрытии, и проверять, чтобы они не случайно записывали в таблицу. – BooleanCheese

+0

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

ответ

0

Я, наконец, исправил это. Самая большая проблема в том, чтобы гарантировать, что в свойствах: Form> Разрешить дополнений = Нет

Я использовал код:

Private Sub Form_BeforeUpdated(Cancel as Integer) 
If Not (Me.NewRecord) Then 
'If not a new record, Undo saving on form 
Me.Undo 
End If 
End Sub 

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

В основном код читается как По форме закрыть, перед обновлением связанной таблицы, Если нет новой записи или всякий раз, когда указанная форма закрыта/функция автоматического сохранения прерывания. Отменить любые изменения/не сохранять изменения формы Конец аргументов.

+0

Хотя это исправляло первоначальную проблему, это порождало проблему, что я больше не могу редактировать свою редактируемую подформу. Проблема заключается в том, что при выборе комнаты из поля со списком, когда я иду, чтобы щелкнуть запись в подформе, субформата по умолчанию возвращается к первой записи. –

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