【发布时间】:2012-03-09 16:44:37
【问题描述】:
我在 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
【问题讨论】: