【问题标题】:Bugs in OrderByOn property in Microsoft Access 2010Microsoft Access 2010 中 OrderByOn 属性中的错误
【发布时间】:2011-05-03 13:20:44
【问题描述】:

设置是远程服务器上的 mySQL 数据库,使用 MS Access 2010 作为前端用户界面。

问题出现在基于底层排序查询的表单中,其中默认视图是连续表单:

  • OrderByOn 属性默认为 False,这不是问题。

  • 用户打开 OrderByOn 属性,使用重新排序记录的按钮 (OrderByOn = True) – 不是问题。

  • 然后用户想要使用原始基础查询排序顺序,使用关闭 OrderByOn (OrderByOn = False) 的按钮 – 出现问题。数据的后续请求不会更新表单。似乎重新查询数据的功能以及 OrderByOn 功能都被关闭了。

  • 问题似乎很重要,因为 OrderByOn 属性似乎没有利用底层的 mySQL 索引。因此,如果无法关闭 OrderByOn,除非绝对需要,否则似乎会导致显着的性能损失。

【问题讨论】:

  • MySQL有SQL追踪工具吗?了解 Jet 向 MySQL 发送的内容会很有用。也许您可以打开 ODBC 日志记录。
  • 您使用的是 ODBC 链接表吗?
  • @David-W-Fenton 的观点是,MySQL 确实有 SQL 日志。见MySQL Docs -- The General Query Log注意第二句“服务器在客户端连接或断开连接时将信息写入此日志,并记录从客户端接收的每个SQL语句。”
  • 通过在表单查询中使用“select ... order by ..”而不是使用表单的 orderby 属性在服务器端而不是客户端进行排序。这将利用索引。
  • 我认为这是msdn.microsoft.com/en-us/library/aa173174(v=office.11).aspx 中指定的正确行为,基本上,当您关闭此功能时,它不应该重新查询数据。你用什么来重新查询数据?

标签: mysql ms-access


【解决方案1】:

我将一个连续表单连接到 Outlook 中的通讯簿...通过右键单击字段并选择 AZ 来设置排序。我认为这具有设置 OrderBy 和 OrderByOn 的效果...

我按下了 CTRL-G 来打开即时窗口...

输入:

?Me![Address Book].OrderBy

得到这样的回报...

[Public].[Address Book].[Display Name], [Public].[Address Book].[Email]

然后我运行命令

Me![Address Book].OrderBy = ""

表格恢复到其自然的基本顺序...无需触摸 OrderByOn... ??

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多