Передача данных между формами Access 2007 - PullRequest
2 голосов
/ 08 апреля 2011

В моей базе данных есть несколько таблиц для разделения большого количества атрибутов отчета.

Я создал серию форм для ввода данных с помощью кнопки «Далее», которая закрывает форму и открывает следующую.

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

РЕДАКТИРОВАТЬ: каждая форма соответствует одной таблице.Запись для этой таблицы / формы не существует, пока в этой форме не будет нажата кнопка «Далее».

1 Ответ

1 голос
/ 08 апреля 2011

Используйте WhereCondition с Docmd.OpenForm. (См. Метод OpenForm )

Так, если ваша следующая форма называется frmTwo, поле первичного ключа называется ID, а текущая форма имеет элемент управления с именем txtID, который содержит значение, которое вы хотите передать следующей форме:

DoCmd.OpenForm "frmTwo", WhereCondition:="ID = " & Me.txtID

Это предложение предполагает, что ID является числовым типом данных. Если это текст, вы должны заключить значение Me.txtID в кавычки при построении WhereCondition.

Редактировать : Я не совсем понял вашу ситуацию. Не уверен, что и сейчас, но я подозреваю, что самым простым решением без кода было бы использование основной формы с вашими вспомогательными формами в качестве элементов управления. Затем, установив свойство Link Master / Child fields, вы можете автоматически передавать значение первичного ключа в новые записи в различных подчиненных формах.

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

Этот подход - то, что Access делает хорошо и легко, не требуя дополнительного кода VBA или макросов.

...