Да, производительность будет несколько ухудшаться для каждой подчиненной формы. Один или три не так уж плохо, но двадцать определенно вызовет у вас проблемы с производительностью.
После того, как подчиненная форма заработает на ваше удовлетворение, либо сохраните источник записи как запрос и присвойте ему имя, либо сохраните строку SQL запроса. Затем вставьте имя запроса или строку SQL запроса в код VBA в событии изменения элемента управления вкладкой.
Private Sub TabCtl_Change()
On Error GoTo TabCtl_Change_Error
Select Case Me.TabCtl.Value
Case Me.pagPartsConsumed.PageIndex
If Me.PartsConsumedsbf.Form.RecordSource <> "Equipment - Parts Consumed sbf" Then _
Me.PartsConsumedsbf.Form.RecordSource = "Equipment - Parts Consumed sbf"
....
Теперь просто для того, чтобы я случайно не оставил заполненными некоторые источники записей подчиненной формы, замедляя приложение при запуске, я проверяю, является ли файл, в котором выполняется код, MDB (вместо MDE. Функция ниже) затем отобразите сообщение о том, что мне нужно удалить источник данных.
If Not tt_IsThisAnMDE Then
If Me.PartsConsumedsbf.Form.RecordSource <> "" Then _
MsgBox "Record source of Equipment - Parts Consumed sbf not empty"
...
End If
Public Function tt_IsThisAnMDE()
On Error GoTo tagError
Dim dbs As Database
Set dbs = CurrentDb
Dim strMDE As String
On Error Resume Next
strMDE = dbs.Properties("MDE")
If Err = 0 And strMDE = "T" Then
' This is an MDE database.
tt_IsThisAnMDE = True
Else
tt_IsThisAnMDE = False
End If
Exit Function
tagError:
Call LogError(Application.CurrentObjectName, "")
Exit Function
End Function
Также в событии выгрузки формы я также очищаю источник Recourd.
Private Sub Form_Unload(Cancel As Integer)
On Error GoTo Form_Unload_Error
Me.PartsConsumedsbf.Form.RecordSource = ""
....
Кстати, я почти всегда помещал бы каждую подчиненную форму на отдельной вкладке. Также, что много записей вкладок становится визуально громоздким. Когда у меня был похожий вопрос, мои коллеги по MVP Access предложили использовать список слева на левой стороне, чтобы контролировать, какая подчиненная форма доступна для просмотра.
Кроме того, каждое поле со списком и список также будут немного ухудшать производительность. Так что, если они есть в подчиненной форме, рассмотрите аналогичную логику.