Последние новости!
Если я вручную создаю новую запись с помощью SQL, а затем открываю форму в режиме редактирования, используя приведенный ниже код, это работает. Я все еще хотел бы знать, в чем проблема была раньше, но, по крайней мере, я могу теперь продолжить свое заявление.
Form1
Форма 1 связана с таблицей 1. Таблица1 имеет поле идентификатора.
Form2
Форма 2 связана с таблицей 2, соединенной с таблицей 1 таблицы 2. Таблица1_ID = Таблица1.ID
Вот SQL (сгенерированный Access):
SELECT
Table2.*,
Table1.[FirstFieldINeed],
Table1.[SecondFieldINeed],
Table1.[ThirdFieldINeed]
FROM Table1 INNER JOIN Table2 ON Table1.ID = Table2.[Table1_ID];
Form2 открывается с этим кодом в Form1:
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "Form2", , , , acFormAdd, , Me.[ID]
DoCmd.Close acForm, "Form1", acSaveYes
А при загрузке запускается:
Me.[Table1_ID] = Me.OpenArgs
Когда загружена Form2, поля, связанные со столбцами из Table1, отображаются правильно.
Форма Form3
Форма 3 связана с таблицей 3, соединенной с таблицей 2 таблицы 3. Таблица 2. ID = Таблица 2. ID
Вот SQL (сгенерированный Access):
SELECT
Table3.*,
Table2.[FirstFieldINeed],
Table2.[SecondFieldINeed]
FROM Table2 INNER JOIN Table3 ON Table2.ID = Table3.[Table2_ID];
Форма 3 открывается с этим кодом в форме 2:
DoCmd.RunCommand acCmdSaveRecord
DoCmd.OpenForm "Form3", , , , acFormAdd, , Me.[ID]
DoCmd.Close acForm, "Form2", acSaveYes
А при загрузке работает:
Me.[Table2_ID] = Me.OpenArgs
Когда загружена форма 3, поля, связанные со столбцами из таблицы 2 , не отображаются правильно.
ПОЧЕМУ?
ОБНОВЛЕНИЕ
Я попытался создать запрос на объединение в отдельный запрос и использовать его в качестве источника записей, но это не имело никакого значения.
Если я перейду к запросу для формы 3 и просматриваю его в виде таблицы, я вижу, что информация, которая должна быть извлечена в форму, есть. Он просто не отображается в форме.
Очередной раунд обновлений
Позвольте мне привести аналогичную ситуацию, поэтому то, что я пытаюсь сделать, понятно.
Table1 теперь Дома.
Table2 теперь Драйверы.
Table3 теперь Cars.
Притворись, что я пишу заявление о страховании. Соотношение этих таблиц будет точно соответствовать тому, что я пытаюсь сделать.
В каждом доме может быть один или несколько водителей, а у каждого водителя ровно одна машина. Сейчас я просто пытаюсь заставить его работать с одним домом, одним водителем и одной машиной. Пользователь должен сначала увидеть форму HouseInformation, которая попросит его заполнить информацию о своем доме. Затем они увидят DriverInformation, который попросит их заполнить информацию о себе. Затем они увидят CarInformation, который попросит их заполнить информацию об их автомобиле. После того, как они будут сделаны, в каждой таблице будет одна запись. Запись в Drivers будет содержать HouseId, соответствующий соответствующему дому, а запись в Cars будет содержать DriverId, соответствующий соответствующему водителю. Меня не особо волнует, как связаны формы, просто они есть и работают надежно.
Для чего бы то ни было, я также попробовал множество других способов загрузки формы и установки ее идентификатора внешнего ключа. Ни один из них не привел к тому, что форма извлекла данные из таблицы предыдущей формы, хотя этот точный шаблон работает между первыми двумя формами.
Дополнительные обновления
Субформы не приемлемы для клиента, который специально запросил отдельные формы.
Я нахожу это чрезвычайно запутанным, но после загрузки Form3, если я его закрываю, перехожу в представление конструктора, открываю запрос для Form3 и переключаюсь в представление таблицы данных, там отображаются правильные данные, включая поля, которые я хочу получить из Form2. Это просто не будет отображаться в форме. Я запросил. Это не имеет значения. Это не будет отображаться.