代码之家  ›  专栏  ›  技术社区  ›  spinjector

在Access VBA中,是否有方法计算和引用主窗口中当前打开的对象?

  •  0
  • spinjector  · 技术社区  · 7 年前

    Access.Application.Screen具有.ActiveDatasheet、.ActiveForm和.ActiveReport属性,但如果屏幕上的有效对象处于活动状态,则仅会定义其中一个属性。它们不能与其他对象类型或非活动对象一起使用,也就是说那些在打开项堆栈后面的对象。

    Access.Application具有.Forms和.Reports属性,这些属性确实提供了未清项的计数和引用,但如上所述,不用于任何其他对象类型。

    “所有集合”有.IsLoaded和.CurrentView属性,这意味着所有窗体、所有宏等都可以工作,但看起来像是大海捞针,在所有十一个集合中循环查找一个或几个项目。如果数据库有很多对象,可能需要一段时间。

    然后是看似过时但仍然有效的SysCmd操作“acSysCmdGetObjectState”。这似乎是我所寻求的选择,特别是因为它具有处理新的/未保存的对象的漂亮能力,并且还可以指示这些对象是否“脏”,这意味着它们是否需要保存。但是,唉,acSysCmdGetObjectState想知道acObjectType和对象名,所以…回到原点。

    那么…是否有一个集中的集合,其中的项目当前在屏幕上打开,而不管对象类型、选项卡/窗口位置或新的/脏的状态如何。。?

    0 回复  |  直到 7 年前
    推荐文章