#forms #ms-access #view #ms-access-2010 #ms-access-2003
#формы #ms-access #Вид #ms-access-2010 #ms-access-2003
Вопрос:
У меня есть форма Microsoft Access, которая предоставляется (каким-то образом) запросом. Запрос содержит три таблицы, связанные вместе с помощью их соответствующих первичных и внешних ключей, и форма отображает данные довольно удачно.
Странная вещь (насколько я понимаю) — это способность формы затем разрешать ввод данных с помощью запроса.
Однако, если пользователь создает новую запись, у всего этого, похоже, возникают проблемы из-за обязательного поля в [table2]
таблице.
SELECT [table1].*
,[table2].JobNo
,[table2].PlannedDateOC
,[table3].DateJobStarted
,[table1].PlanNo
FROM (
[table1] LEFT JOIN [table2] ON [table1].PlanNo = [table2].PlanNo
)
LEFT JOIN [table3] ON [table2].JobNo = [table3].JobNo
ORDER BY [table2].PlannedDateOC
,[table1].PlanNo;
По словам пользователей, эта форма отлично работала до преобразования из формата Access 97/2003 в Access 2010 (формат файла 2007).
Может ли кто-нибудь уточнить, является ли это (тот факт, что оно должно работать) законным, и будет ли этот процесс работать в любой версии Access, если да? Концепция возможности использования запроса для ввода данных мне совершенно чужда.
Дайте мне знать, если вам нужны дополнительные разъяснения.
ПРИМЕЧАНИЕ: Здесь следует отметить, что я переместил некоторые поля в заголовок формы, чтобы они всегда были видны как остальная часть прокрутки формы. Я не знаю, будет ли это иметь какие-либо побочные эффекты на производительность формы.
Комментарии:
1. приведенный выше запрос позволит вам вставлять данные в [table1], когда все ненулевые поля имеют значения! какая у вас проблема?
2. Спасибо за ответ, @krishKM. Цитата: Однако, если пользователь создает новую запись, у всего этого, похоже, возникают проблемы из-за обязательного поля в
[table2]
таблице. В основном запись не сохраняется, потому что во второй таблице есть обязательное поле.3. и убедитесь, что только table1.поля загрязняются при вставке новой записи. Не все видимые поля из другой таблицы.. это было бы (непоследовательное обновление / вставка) и, скорее всего, приведет к ошибке
4. конечно! дайте нам знать. (в идеале просто заблокируйте / отключите другие поля из других таблиц), чтобы они все еще могли просматривать их при открытии для просмотра)
5. нет никаких изменений в том, как работает ядро базы данных и формы в отношении 20-летней версии access 97 по сравнению с новой версией 2016 года. Итак, в чем бы ни заключалась проблема — это не какое-то изменение в том, как работает Access — что-то еще было / испорчено.
Ответ №1:
Приведенный выше запрос позволит вам вставлять данные в [table1], когда все ненулевые поля имеют свои значения, и убедитесь, что только table1.поля загрязняются при вставке новой записи.