2013-12-02 7 views
1

У меня есть 2 таблицы (таблица 1 и таблица 2), обе таблицы содержат имя поля строки «theName». И у меня также есть 2 формы (форма 1 и форма 2), источник записи 1-й формы - это таблица 1, а источник записи 2-го уровня - таблица 2. Я хочу ввести значение для «theName» в форме 1, затем нажмите кнопку, которая открывает форму 2 к новой записи, а затем устанавливает поле «theName» в значение, введенное в форме 1. Так, например, если я ввел значение «John» в поле «theName» в форме 1, а затем нажал кнопку, которая откроет форму 2 на новую запись, а затем установите для поля «theName» значение «John». У меня есть код для начала, но это не сработает для меня.Передать значения из одной таблицы в другую

Можно ли открыть и сформировать новую запись, а затем установить значение поля автоматически?

Dim theName As String 
theName = Me.theName 

DoCmd.openForm "form2", , , "theName=" & Me.theName 
+0

Ваша база данных не находится в 3-й нормальной форме, если вы сохраняете одни и те же данные в двух местах. Я предлагаю вам подумать о создании третьей таблицы с именами и AutoNumber в качестве первичного ключа, а также третьей формы, которая принимает только имена. Делая это, вы удаляете избыточные данные. –

ответ

1

Вы можете присвоить значение элементу управления во второй форме сразу после открытия формы.

' open form2 in add mode 
DoCmd.OpenForm "form2", DataMode:=acFormAdd 
' assign value to text box named theName 
Forms!form2!theName = Me.theName 
+0

Привет Спасибо за ответ, где я ставлю «Forms! Form2! TheName = Me.theName»? Я поместил его в поле фильтра в форме 2, но он не сработал, форма 2 просто открывается в пустую форму, а значение «theName» не установлено – derek

+0

Я думал, что вы вызываете «DoCmd.OpenForm» из кода VBA в форме1, поэтому мое намерение состояло в том, чтобы включить «Forms! form2! theName = Me.theName» в следующую строку в этом коде процедуры. – HansUp

+0

Отлично, что работает спасибо. еще один вопрос: как я могу убедиться, что в таблицу не введены никакие дубликаты. поэтому, например, если «john» вводится, как только он не может быть введен снова – derek

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