У меня есть приложение Front End / Back End в MS Access, и у меня возникают некоторые проблемы с производительностью при закрытии форм.
Эти формы всегда сохраняются перед закрытием, потому что в Form_Open
я скрываю некоторыеколонки и редактировать подпись.Затем, когда я закрываю форму, она сохраняет скрытые столбцы и тратит много времени!
Я уже сделал много изменений настроек в Access для оптимизации для FE / BE.Но у меня все еще есть проблемы с формами, которые сохраняются перед закрытием.На соревнованиях по спасению это действительно тратит много времени.С подпрограммой скрытия / редактирования столбцов требуется 20 секунд для сохранения.Без процедуры это занимает 1 с или менее, но мои данные не сохраняются.
Как я могу скрыть / отредактировать эти столбцы без необходимости впоследствии сохранять форму?Или как я могу закрыть форму без сохранения изменений структуры?
К сожалению, в Access нет события BeforeClose
, а в событии Close
или Unload
он сохраняется перед переходом на эту подпрограмму, поэтомуЯ не могу отменить его, чтобы закрыть позже в коде.
Скрыть код:
'show all columns
For i = 1 To 8
Form_Y_SubF_LP.Controls("Item_00" & i).ColumnHidden = False
Form_Y_SubF_LP.Controls("Quantity_00" & i).ColumnHidden = False
Form_Y_SubF_LP.Controls("DistributionEQ_00" & i).ColumnHidden = False
Next
'Hide unnecessary columns
For i = 8 To ProtQuant + 1 Step -1
Form_Y_SubF_LP.Controls("Item_00" & i).ColumnHidden = True
Form_Y_SubF_LP.Controls("Quantity_00" & i).ColumnHidden = True
Form_Y_SubF_LP.Controls("DistributionEQ_00" & i).ColumnHidden = True
Next
'Change the caption of columns to the real name of each prototype
prot = DLookup("[Prototype]", "Y_Configurações", "[Program]= '" & ProgramName & "'")
For i = 0 To UBound(Split(prot, ";"), 1)
Form_Y_SubF_LP.Controls("Item_00" & i).Properties("Caption") = "Item_" & Split(prot, ";")(i)
Form_Y_SubF_LP.Controls("Quantity_00" & i).Properties("Caption") = "Quantity_" & Split(prot, ";")(i)
Form_Y_SubF_LP.Controls("DistributionEQ_00" & i).Properties("Caption") = "DistributionEQ_" & Split(prot, ";")(i)
Next