【问题标题】:Sorting while using Access runtime使用 Access 运行时进行排序
【发布时间】:2009-07-14 15:16:52
【问题描述】:

情况如下: 我有一个用户在 Access 2003 运行时模式下运行的数据库应用程序。我有一个在数据表视图中运行的表单。我想要做的是允许用户在查看此数据表表单时更改排序顺序。我在自定义工具栏上包含了正常的 Access 升序/降序排序按钮。在我的 PC 上,安装了完整版 Access,这些排序按钮已启用,我可以进行排序。

问题来了: 我的用户在未安装完整版 Access 的情况下运行可以看到这些按钮,但它们是灰色/禁用的。

有人知道在 Access 2003 的运行时版本中启用这些按钮的方法吗?

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    实际上,这些按钮应该在数据表视图中工作。但是,在运行时环境中以连续形式它们将不会被启用并且它们将不起作用。

    这里的简单解决方案是向该菜单栏添加几个您自己的自定义按钮。

    让这些按钮调用 VBA 代码,将排序设置为升序或降序。

    因此,对于 a->z 按钮,将 on-action 更改为:

    =MySortDown()

    (请记住在此处添加一些新按钮,不要使用内置按钮,否则它们将被禁用 - 您可以使用自定义菜单编辑器从原始按钮中复制图形图像)

    对于降序排序按钮,您可以使用:

    =MySortUp()

    然后在一个标准的代码模块中,将上面两个将要调用的函数,写成如下。

      Public Function mySortDown()
    
         Dim f    As Form
         Dim c    As Control
         Set f = Screen.ActiveForm
    
         Set c = f.ActiveControl
    
         f.OrderBy = c.ControlSource
         f.OrderByOn = True
    
      End Function
    
      Public Function mySortUp()
    
         Dim f    As Form
         Dim c    As Control
         Set f = Screen.ActiveForm
    
         Set c = f.ActiveControl
    
         f.OrderBy = c.ControlSource & " DESC"
         f.OrderByOn = True
    
      End Function
    

    跟进:

    我没有关于什么有效的参考。但是,在测试期间,您可以创建一个快捷方式,让您可以像在运行时模式下一样测试/运行您的代码。

    只需使用:

    "C:\Program Files\Microsoft Office\OFFICE11\MSACCESS.EXE"
    "c:\program files\RidesXP\RidesXP.mdb"  /runtime
    

    以上内容在快捷方式中的一行(每行之间有一个空格)。

    至于数据表排序按钮不起作用,没问题。我认为这可能取决于您从内置按钮中提取了哪些按钮。无论如何,我的示例/示例代码应该适用于任何一种情况。

    【讨论】:

    • 好吧,表单肯定在数据表视图中,并且在运行时按钮肯定是灰色的。我会在星期一尝试你的代码,看看是否能解决问题。无论哪种方式,您从哪里获得有关在运行时将/不会工作的信息?个人经验或您是否有一些您信任的权威来源?
    • 评论 Albert 的后续行动:我知道 /runtime 开关并用它在我的本地机器上进行测试。这是我第一次看到使用安装了完整版本的 /runtime 开关并在具有运行时和没有完整版本的机器上运行时发生的差异。无论哪种方式,感谢您的回答。
    【解决方案2】:

    快捷菜单

    我倾向于在“快捷菜单”工具栏上创建一个自定义快捷菜单,其中包含内置的“按选择排序和过滤”菜单项。然后只需为所有需要能够排序的控件设置文本框快捷菜单栏属性。

    这样做的缺点是用户需要知道右键单击,但设置多个表单非常容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多