2017-02-11 3 views
1

В Access 2016 у меня есть основная форма ClientInfoForm, которая содержит подформацию EditTransactions_subform. Подформат находится в представлении данных. Когда пользователь нажимает на запись в подформе, я хочу заполнить поля в основной форме. В случае Click подчиненного, я в настоящее время:Заполнять поля в основной форме из записи в подформе

Public Sub Form_Click 

Forms![ClientInfoForm]![Amendment] = Forms![ClientInfoForm]![EditTransactions_subform].Form![Amendment] 

End Sub 

Я не уверен, если это правильный код, чтобы выполнить то, что я хочу. Имя поля - [Изменение] как в подформе, так и в основной форме.

Заранее благодарим за вашу помощь!

Говард

ответ

2

Это звучит спереди назад. Обычное использование основной формы/подформы состоит в том, чтобы перемещаться по вашим записям в основной форме, и для каждой основной записи субформа будет отображать все связанные дочерние записи. Звучит так, будто вы всегда показываете все свои записи из дочерней таблицы в подформе, и при навигации по ним вы хотите изменить информацию в основной форме.

Если это действительно то, что вы хотите сделать, и если предположить, что это связанные формы, тогда вам нужно убедиться, что между основной и подформой нет связи (по свойствам подформы очистить записи от Link Child Fields и Link Master Fields). В событии On Current вы можете попробовать что-то вроде этого (хотя оно полностью не проверено):

Dim rst As Recordset 

Set rst = Me.Parent.RecordsetClone 
rst.FindFirst "Amendment = '" & [Amendment] & "'" 'assumes [Amendment] is String, otherwise lose the surrounding quotes 
Me.Parent.Bookmark = rst.Bookmark 

rst.Close 
Set rst = Nothing 
Смежные вопросы