Ваш текущий код AfterUpdate
просто запрашивает у подформы запрос существующих критериев фильтрации, что приведет к отображению тех же записей.
В вашем случае вы хотите обновить критерии фильтра подчиненной формы, чтобы они ссылались на новое значение, выбранное в ComboBox. Для этого вам понадобится что-то вроде этого:
Dim mssql As String
If Len(Me.cboProjectSelect.Value & "") > 0 Then
mssql = "[Project_ID] = " & Me.cboProjectSelect.Value
Me.Project_Tracker_Subform.Form.Filter = mssql
Me.Project_Tracker_Subform.Form.FilterOn = True
End If
Этот код будет обновлять подчиненную форму только в том случае, если в ComboBox выбрано значение (т. Е. Если пользователь очищает значение ComboBox, оператор If
предотвратит обновление подчиненной формы)
Затем этот код устанавливает новый фильтр и указывает подчиненной форме выполнить фильтр с FilterOn = True
.
В случае, когда пользователь очищает ComboBox, возможно, вы захотите удалить всю фильтрацию из подчиненной формы. В этом случае вы можете добавить предложение Else
, например:
Else
Me.Project_Tracker_Subform.Form.FilterOn = False
End If