【问题标题】:How to know menubar control item properties如何知道菜单栏控件项属性
【发布时间】:2011-12-30 12:52:53
【问题描述】:

我刚刚进入 ms-access。这是我第一次使用 VB 和 ms-access,如果这是一个基本问题,请原谅我。我得到了一个 ms-access 的应用程序,它是一个 .adp 文件。需要自定义此应用程序。 双击应用程序后显示波纹管用户界面

按住 Shift + 双击获取下面的 UI

按住 Alt+F11 得到如下界面(代码) 图片 1 指出了一个组合。想要自定义这个组合。为此需要知道组合名称。

1)How to know the control name from my  ms-access .adp file.
2)By using smart navigation(like vs2010),In ms-Access combo is it possible to add combo items ?
3)How to get Smart Navigate items from combo

如果有任何疑问请询问。任何类型的建议都可以接受。提前致谢

【问题讨论】:

    标签: ms-access ms-office ms-access-2007 vba


    【解决方案1】:

    您必须获取设置的菜单栏的名称。此菜单栏要么在启动(应用程序范围)中设置,要么在启动表单属性表的“其他”选项卡中设置。此外,虽然可以通过内置 UI(在 Access 2007 之前)将大多数控件添加到自定义菜单栏,但组合框不是这些控件之一(因此需要代码才能将组合框添加到菜单栏)。此代码可能已作为添加此控件的实用程序“运行一次”(它可能会持续存在于应用程序中)。

    另一种可能是应用程序启动中的代码将组合框添加到自定义菜单栏。

    另一种可能性是应用程序启动时的代码使用 VBA 代码在启动时“创建”菜单栏和组合框。事实上,这里可能有大约 15 种不同的东西需要检查——经验丰富的 Access 开发人员可以在大约 10 分钟内检查出这些东西。但是,要写出要检查的 20 项内容以及在哪里可以找到这些内容以及如何检查这些内容,我需要认真打字并靠近一本书。

    因此,Access 有相当长的学习曲线(比使用 c# 并在 VS2010 中编写代码要长)。

    使这个问题更加复杂的是,在 Access 2003 之后,允许修改菜单栏的 GUI 部分被删除。这意味着您必须使用 Access 2003 或从 2007 开始,您必须使用 VBA 代码来创建/维护/更新/修改内置菜单栏。

    此外,由于您看到的是自定义菜单栏而不是功能区,但您使用的是 Access 的功能区版本,这意味着您拥有的数据库格式是 2007 年之前的格式(即:创建于 2003 年或更早)。

    您的情况有多糟糕取决于这些菜单栏是用代码创建的,还是以前由 GUI 创建的。我会说“经常”代码在启动中用于创建或管理菜单栏,但这可能不是您的情况(您必须通过查看应用程序启动时运行的启动代码来确定这一点)。

    但是,即使使用 Access 2003 向菜单栏添加组合框,也始终需要自定义代码。该自定义代码可能是一次性代码编写并被丢弃,或者代码每次在启动时运行。除非我们查看代码,否则我们不知道这个答案——如前所述,组合框的代码很可能从未保留(换句话说,您可以运行代码来创建组合框,它会根据情况持续存在)关于代码如何添加菜单栏)。

    所以首先要做的是检查系统范围内指定的自定义菜单栏(或检查是否确实有一个 - 他们可能没有)。

    如前所述,在 2007 年,您应该看到一个功能区而不是菜单栏,使这个问题更加复杂。所以这本身就是一个你必须处理的问题(需要一些技巧才能在 2007 年实现这一点)。因此,如何设置菜单栏以显示可能使用了此链接中概述的这种方法:

    http://www.accessribbon.de/en/index.php?FAQ

    在上面,向下滚动到

    “我希望在 A2003 或之前创建的数据库仅显示我自己的菜单栏”

    我无法直接链接到上面,因为它是某种类型的 AJAX 页面,因此您必须向下滚动并单击链接以展开它。上面的链接还显示了 2007 年设置系统范围菜单栏的选项。您必须确定此问题。

    我还会考虑搜索关键字“commandbars”并查看是否出现任何 VBA 代码。如前所述,创建该组合的代码可能已运行一次并被丢弃,或者它可能是启动代码的一部分。代码每次运行的概率较高,但我们不知道。

    顺便问一下,你看过启动代码了吗?启动代码将采用“大多数情况下”指定在启动时运行的形式。然而,也可能有一个名为“autoexec”的启动宏。因此,如果存在名为 AutoExec 的宏,您还需要检查宏区域(不要混淆 Access 中的宏和 VBA 代码一词——它们是不同的概念和不同类型的代码)。

    如前所述,在启动过程中按住 shift 会同时禁用 autoexec 宏和启动表单。这意味着你可以只拥有一个 autoexc 宏来做很多事情,然后启动一个启动表单。或者也许你刚刚启动表格。或者你可以两者兼得——一切皆有可能,你必须在这里检查所有情况。

    Access 作为一个开发平台往往有一个相当长的学习曲线(我想说比学习 c# 和 VS2010 长很多)。

    如果你要在这个项目上做很多工作,你可能应该带一个有几年经验的人,否则上面 20 件要检查的事情不会让你花 10 分钟去测试,但每件事情我问你第一次可能需要一个小时(所以现在你要花 20 或 30 小时来检查一些东西,而经验丰富的开发人员最多需要 10 或 20 分钟)。

    一个不错的技能水平检查清单是这样的:

    (通常有“很多”技能水平,但以下细分足以开始此类项目)。

    Stage 1 Innocent (never heard of the product)
    
    Stage 2 Aware (Has read an article about X)
    
    Stage 3 Apprentice (has attended a three-day seminar)
    
    Stage 4 Practitioner (ready to use X on a real project)
    
    Stage 5 Journeyman (uses X naturally and automatically in his job)  
    
    Stage 6 Master (has internalized X, knows when to break the rules)  
    
    Stage 7 Expert (writes books, gives lectures, looks for ways to extend x)
    

    任何人都不应尝试与由第 3 阶段或以下人员组成的团队进行项目。这是失败的可靠公式。团队可以由第 4 阶段组成,但他们至少应该可以进入第 5 阶段或第 6 阶段。(以上参考:Page-Jones,Meilir。“软件工程专业知识的七个阶段”,美国程序员,1990 年 7 月至 8 月)。

    因此,根据您需要在此处投入多少时间,您可能希望在这里引入有经验的人,尤其是那些做过菜单栏并与 ADP 合作过的人。

    无论如何,以上内容应该可以帮助您入门,但考虑到您的问题已经让您难以理解,无法在 Access 中完成开发所需的基本任务。

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 2012-01-16
      • 2012-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多