Ms access 使用Access运行时进行排序

Ms access 使用Access运行时进行排序,ms-access,Ms Access,情况如下: 我有一个数据库应用程序,用户在Access 2003运行时模式下运行。我有一个在数据表视图中运行的表单。我希望能够做到的是允许用户在查看此数据表表单时更改排序顺序。我在自定义工具栏上包括了普通访问升序排序/降序排序按钮。在我的电脑上,安装了完全版本访问,这些排序按钮已启用,我可以排序 问题是: 我的用户在未安装完整版本Access的情况下运行时,可以看到这些按钮,但它们已灰显/禁用 有人知道在Access 2003的运行时版本中启用这些按钮的方法吗?实际上,这些按钮应该在数据表视图中

情况如下: 我有一个数据库应用程序,用户在Access 2003运行时模式下运行。我有一个在数据表视图中运行的表单。我希望能够做到的是允许用户在查看此数据表表单时更改排序顺序。我在自定义工具栏上包括了普通访问升序排序/降序排序按钮。在我的电脑上,安装了完全版本访问,这些排序按钮已启用,我可以排序

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


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

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

这里的简单解决方案是在meuu栏中添加两个您自己的自定义按钮

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

因此,对于a->z对接,将on操作更改为:

=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
上面是快捷方式中的一行(每行之间有一个空格)

至于数据表排序按钮不工作,没有问题。我想这可能取决于你从内置按钮上取下了哪些按钮。无论如何,我的示例代码应该适用于任何一种情况。

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


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

好的,表单肯定在数据表视图中,并且在运行时按钮肯定是灰色的。我将在周一试用你的代码,看看这是否能解决问题。不管是哪种方式,您从何处获得关于什么在运行时会/不会工作的信息?个人经验或您是否有值得信赖的权威来源?请访问Microsoft Access(Office)开发者版-随机Microsoft Office中的一些链接,MSDN&Knowledge Base文章,足以获取Microsoft官方问题列表。请评论Albert的后续文章:我知道/runtime开关,并使用它在本地计算机上进行测试。这是我第一次看到在安装了完整版本的情况下使用/runtime开关,并在运行时和没有完整版本的机器上运行时发生的情况之间的差异。谢谢你的回答。