LockWindowUpdate через WinAPI — один из рабочих хаков для этого:
Private Declare PtrSafe Function LockWindowUpdate Lib "user32" _
(ByVal hwndLock As LongPtr) As Long
Sub PreloadForms()
On Error GoTo Cleanup
LockWindowUpdate Application.hWndAccessApp
DoCmd.OpenForm "Form1", acNormal, , , , acHidden
DoCmd.OpenForm "Form2", acNormal, , , , acHidden
Cleanup:
LockWindowUpdate 0
End Sub
Экран замораживается на время загрузки — мелькания нет.
PtrSafe нужен для 64-бит Office; на 32-бит убери его и замени
LongPtr на
Long.
On Error GoTo Cleanup обязателен — иначе при ошибке UI зависнет намертво.
p.s. если формы тормозят именно из-за данных — кста проще грузить с
WHERE "1=0" (0 записей, мгновенно) и подменять RecordSource уже когда юзер реально откроет форму.