Дублирование записи основной формы MS Access с сохранением связи родитель-потомок в подчиненной форме

У меня есть форма ввода Ежемесячные отчеты (источник данных: таблица Monthly Reports) с подчиненной формой Project Info (источник данных: таблица Projects), связанной с полем ProjectID. ProjectID - это PK в таблице Projects и FK в таблице Monthly Reports.

Я пытаюсь использовать кнопку "Дублировать запись" для дублирования записи в основной форме "Ежемесячные отчеты", редактирования дублированной записи и сохранения ее в качестве новой записи / ежемесячного отчета для того же проекта. Я хотел бы сохранить информацию о проекте (или ссылку на ProjectID) в новой записи после дублирования. Когда я дублирую запись, она создает новую запись ежемесячного отчета с уникальным номером, но не сохраняет внешний ключ ProjectID, создавая, таким образом, несвязанную запись без внешнего ключа ProjectID. Как изменить макрос или добавить код VB по нажатию кнопки "Дублировать запись", чтобы сохранить ссылку на поле "Родитель-ребенок"?

Спасибо.

1 ответ

Короткий ответ, если я понимаю, что вы спрашиваете, нет.

Если у вас есть отношение между основной и дочерней таблицами, это отношение один (основная запись) ко многим (дочерние записи). Ребенок не может иметь более одного родителя. Даже если вы не определили это отношение в базе данных, когда вы связываете подчиненную форму с главной формой полем, это (один) подразумевается (правильно).

То, что вам нужно сделать, - это создать макрос, после создания новой основной записи, создать новую дочернюю запись, а затем скопировать поля существующей дочерней записи в новую запись. Наконец, вам нужно будет установить значение поля новой дочерней записи [ProjectID] равным значению только что созданной основной записи. Теперь у вас есть полная копия.

Другие вопросы по тегам