【问题标题】:How to dynamically load, access and unload subforms in microsoft access如何在microsoft access中动态加载、访问和卸载子表单
【发布时间】:2012-08-08 22:44:07
【问题描述】:

我正在尝试从 ASP.NET 过渡到访问编程,当我想到 Access 中的子窗体时,我习惯于从用户控件的角度来思考。我想做的是允许用户单击一个按钮来加载一个包含用户可以输入其他数据的控件的子表单。如果有任何信息或资源可以帮助我理解在 MS Access 中是如何完成的——如何加载、卸载和访问子表单中的数据,我将不胜感激。提前致谢

【问题讨论】:

    标签: vba ms-access vbscript ms-office office-2010


    【解决方案1】:

    嗯,作为一般规则,子表单的加载是自动完成的,不需要您进行任何编码。因此,一般而言,您最好不要担心这个问题,并节省所有编码时间来帮助您附近的穷人和有需要的人。

    但是我应该指出,如果您在 Access 中构建 Web 表单,那么子表单只有在使用时才会动态加载。因此,如果您在选项卡控件后面放置一个子表单,然后生成的 Web 表单(发布时它们是 XAML 表单,并且表单代码被转换为 JavaScript),那么子表单会为您动态加载到浏览器中。毫无疑问,这种设置确实会加快 Web 表单的加载速度。因此,对于 Web 表单,这种加载是动态的,并且是 Access Web 表单的按需加载。

    但是,我在这里的猜测是您谈论的是 Access 客户端表单,而不是 Access Web 表单。鉴于这种情况,在客户端,加载时间相当快,很少担心或需要或浪费开发人员时间来执行此操作。

    但是,在某些情况下,例如必须加载 5 个子表单,并且这样的时间加起来可能会导致用户开始注意到延迟。在这种情况下,您可以动态加载子表单,您可以通过设置子表单对象的源对象属性来实现。

    所以请记住,子表单只是一个“控件”,与实际表单无关。在大多数 Access 应用程序中,我看到此子表单控件的名称与子表单名称相同,但它当然不必如此。

    所以,要动态加载子表单,比如切换到表单上的不同选项卡时,代码如下所示:

      Private Sub TabCtl2_Change()
    
         If Me.TabCtl2.Value = 1 Then
            If Me.frmListContacts.SourceObject = "" Then
               Me.frmListContacts.SourceObject = "frmListContacts"
            End If
    
      End Sub
    

    因此,如果您在表单上放置子表单控件,但将源对象设置留空,则不会为该子表单加载或显示任何表单。而在上面,一旦我加载了表单,那么源对象设置就不会是空白的,因此我不会多次尝试设置/加载子表单。

    如前所述,在加载表单的绝大多数情况下,无论如何您都需要加载和显示该子表单,因此在大多数典型应用程序中不需要上述代码。

    【讨论】:

    • 我一般使用少量的子表单控件,根据需要加载表单。它可以更快地加载表单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多