MS-ACCESS Отображение записи из одной таблицы в форме, привязанной к другой, на основе выбора поля со списком?

Мне нужно ткнуть в правильном направлении. У меня есть контактная форма, которая отображает информацию о людях, и я хочу, чтобы она также отображала местоположение, в котором они работают (которое хранится в другой таблице). Теперь я хочу взять это поле со списком с местоположением (которое является полем в связанной таблице контактной формы) и заполнить остальные поля из этой записи. (т.е. местоположение, затем заполните текстовое поле с адресом местоположения). Как бы я поступил по этому поводу. Эта форма также используется для обновления человека, если это необходимо, поэтому запрос не идеален. В этой форме местоположение не редактируется, а только отображается.

Любая помощь будет здорово!


person user2744572    schedule 15.11.2013    source источник
comment
Похоже, 2 набора записей будут работать. Почему запрос не идеален? Если вы выберете набор записей_b из отдельной таблицы в зависимости от местоположения, вы можете заполнить все нужные текстовые поля, а набор записей_а, основанный на человеке, можно будет редактировать.   -  person Grant    schedule 15.11.2013
comment
Это хороший момент, я застрял в мыслях о том, что какой-то код работает в каждом текстовом поле. Как именно я могу создать запрос для заполнения полей?   -  person user2744572    schedule 15.11.2013


Ответы (2)


Вы можете сделать это, создав подчиненную форму и внедрив ее в форму. Хотя могут быть и другие, более элегантные способы сделать это.

person Charles Naughton    schedule 15.11.2013

В событии After_Update текстового поля у вас может быть что-то вроде этого:

Dim db as Database
Dim rec as Recordset

Set db = CurrentDB
Set rec = db.OpenRecordset ("Select * from MyTable WHERE UCase(Location) = '" & UCase(Me.MyLocationTextbox.Text) & "'")

Me.Address1 = rec("Address1")
Me.SomeOtherField = rec("WhateverItsCalled")

Set rec = Nothing
Set db = Nothing

Очевидно, что приведенный выше код нуждается в небольшой настройке, чтобы он соответствовал вашим конкретным именам полей и имен текстовых полей, но вы поняли идею.

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

person Johnny Bones    schedule 15.11.2013