2016-09-01 1 views
0

Итак, у меня есть форма в Acess 2010 с двумя подчиненными формами для управления отношением «один ко многим», для проектов и задач они привязаны к двум связанным таблицам на SQL Server, поэтому всякий раз Я загружаю проект, задачи перечислены в подформе.Ошибка доступа 2010 при перемещении фокуса в подчиненную форму или acSaveRecord

В последнее время я столкнулся с ошибкой on primary key violation всякий раз, когда я перехожу из поля в основной форме в любую область подформ. Это говорит мне, что основная форма пытается сохранить все, что было загружено, но вместо UPDATE она пытается INSERT.

Нет кода или события, которое я могу видеть (например, до или после обновления), которые могут выполнять эту конкретную команду. В форме есть кнопка «Сохранить», эта кнопка использует DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 и производит ту же ошибку.

Есть ли способ указать доступ к использованию UPDATE вместо INSERT?

Я искал все вокруг, но, похоже, не нашел никакого связанного исправления.

Спасибо всем!

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

+0

Если вы открываете форму в режиме добавления, по умолчанию она будет вставлена. Аналогично, открытие в редакторе по умолчанию - обновление. Вы не указали какой-либо код или как ваши формы связаны, поэтому мы не можем много помогать здесь – dbmitch

+0

На самом деле вы помогаете больше, чем думаете, у меня нет большого опыта работы с формами доступа, я вижу, что нет никаких действий для выполнения в основном коде формы, когда я загружаю форму, она не указывает метод, поэтому я попытался использовать 'DoCmd.OpenForm stDocName,, stLinkCriteria, acFormEdit', чтобы попробовать то, что вы упомянули (я не знал об этом, спасибо), но кажется, что это не меняет ситуацию ... форма неподвижных символов выдает ошибку всякий раз, когда вы нажимаете в любом месте подформы или пытаетесь перейти к следующей записи ... она по-прежнему пытается вставить, а затем нарушает PK. –

+0

Я использую связанные формы, кстати. –

ответ

0

Если в таблицах SQL есть триггеры, это может быть триггер, вызывающий оператор INSERT, а не передний конец.

+0

Я проверил, но на таблицах нет триггеров. Спасибо за помощь. –

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