Нет хорошего способа сделать это, кроме как просто отключить рисование на экране.Вот код из одного из моих приложений:
Dim frm As Form_frmInventory
Dim strRecordsource As String
Dim intType As Integer
DoCmd.Hourglass True
Application.Echo False
Set frm = New Form_frmInventory
frm!boxHeader.BackColor = 3276900 ' 5483007
frm!boxFooter.BackColor = 3276900 ' 5483007
strRecordsource = "SELECT qryInventoryForm.*, varZLStoNull(IIf([tblInventory].[InventoryClass] In ('BKS','FAC','MTH','MUS','REF','SSC'),[Creator] & [Dates] & OtherAuthors([OtherAuthors]))) AS BibCreator, CreatorDates([Birth],[Death],[OtherAuthors]) AS Dates, varZLStoNull(Trim(nz(UCase([tblBib_Authors].[LastName]) & IIf(Not IsNull([tblBib_Authors].[FirstName]),', ') & [tblBib_Authors].[FirstName],'Anon.'))) AS Creator, tblBib_Authors.CreatorCategories, Nz([CreatorSort],[LastName] & [FirstName]) AS NameSort FROM qryInventoryForm LEFT JOIN tblBib_Authors ON qryInventoryForm.CreatorID = tblBib_Authors.CreatorID WHERE ([quantity]>0 Like getSold()) AND (qryInventoryForm.InventoryID=" & lngInventoryID & ") ORDER BY Nz([CreatorSort],[LastName] & [FirstName]), InventoryClass, ShortTitle;"
frm.RecordSource = strRecordsource
' need to change the caption and disable certain things
frm.Caption = frm.Caption & " -- " & frm!InventoryClass & "-" & Nz(frm!InventoryNo, Format(frm!InventoryID, "00000"))
frm!fldShortTitle.SetFocus
frm!cmbClassFind.Enabled = False
frm!cmbCreatorFind.Enabled = False
frm!cmbInventoryNumber.Enabled = False
[etc.]
frm.Visible = True
GoTo exitRoutine
CloseForm:
Call CloseForm(Me, True)
exitRoutine:
Application.Echo True
DoCmd.Hourglass False
Exit Sub
Суббота CloseForm () очень важна, так как вам нужно отслеживать несколько экземпляров формы и закрывать нужный.Я получил код от ADH97 и адаптировал его оттуда (только основы).
Из этого кода (я забыл подробности) может показаться, что форма, созданная с помощью Set frm = New Form_frmInventory
, не видна доВы явно раскрываете это.Это плюс, так как это должно означать, что вам не нужно выключать экран (т.е. Application.Echo False
), но я уверен, что я все равно вспоминаю, что это нужно, чтобы все выглядело гладко.Моя память состоит в том, что форма будет отображаться с ее обычными цветами, а затем цвета фона будут заметно изменяться по мере выполнения кода.Это означает, что было видимым, поэтому я не уверен, почему необходимо явно установить форму видимой.
В любом случае, это должно помочь вам начать, я думаю!