vue页面关闭是保存表单
介绍 :本文涉及一个长期存在的问题(至少从Access 2.0开始),在该问题中,另一个(主)窗体的子窗体中使用的窗体将在主窗体打开和打开期间进行任何临时和临时的设计更改。在使用中,自动保存下来成为Form的新设计。 这是很少需要的,但是Access却为您提供了这种功能,而没有任何方式指定您不希望这样做。 通常,表单设计者希望保留表单,就像他们自己选择保存表单一样。 瞬态更改仅适用于当前使用的实例的生命周期,不应保存为表单的新设计。
例子 :在这种情况下,典型的变更示例包括:
- 在“设计”视图中打开“表单”时窗口的大小(这对设计人员来说是很烦人的)。
- 数据的排序顺序。
- 过滤。
- 表单中任何控件的大小和位置。
- 用于说明特定情况的控件格式。
- 等等。
我找到了一个似乎可行的解决方案,该解决方案是在主窗体关闭时从Subform控件中删除Form本身。 由于当时Access没有关联,否则Access会为您慷慨地保存它(即使您不需要它),因此不会保存任何设计更改,并且您可以放心地再次使用它,因为它与以前完全一样。最后保存在“设计”视图中。
支持代码:可以在不知道对任何相关对象进行任何设计更改的情况下,意外地或通过Access的误导性,将以下代码通用地用于关闭任何Form或Report对象。
'CloseMe() closes the Form or Report. No data or design changes are saved here.
Public Sub CloseMe(objMe As Object)
Dim intType As Integer
Dim ctlVar As Control
With objMe
Select Case True
Case TypeOf objMe Is Form
intType = acForm
Call .Undo
For Each ctlVar In .Controls
With ctlVar
If .ControlType = acSubform Then
Call .Form.Undo
.SourceObject = ""
End If
End With
Next ctlVar
Case TypeOf objMe Is Report
intType = acReport
Case Else
Exit Sub
End Select
Call DoCmd.Close(ObjectType:=intType _
, ObjectName:=.Name _
, Save:=acSaveNo)
End With
End Sub
- 第8行检测对象是否为Form。
- 第9行至第15行清除所有未保存的数据更改,并从所有子表单中卸载表单。
- 第16行至第17行对于报表而言更为直接。 只需将其标记为“报告”以备后用。
- 第18-#19行忽略传递的任何其他类型的对象。
- #21-#23行关闭主窗体,而不保存任何设计更改。
vue页面关闭是保存表单