【问题标题】:MS Access : Drop down List is too slowMS Access:下拉列表太慢
【发布时间】:2016-01-18 14:19:16
【问题描述】:

我在 MS Access (Form) 中基于 Query(多个表)创建了一个下拉列表,问题是打开下拉列表大约需要一分钟。
如果我打开查询,它会立即打开。

我发现是什么导致下拉响应如此缓慢。这是我在查询中的一个标准:

In (SELECT [ObjectID] FROM [ObjectDetail] As Tmp GROUP BY [ObjectID] HAVING Count(*)>1) 

如果我从查询中删除此条件,下拉菜单会立即完美运行。

所以我的问题是:有什么方法可以让下拉菜单响应更快,同时仍然保持标准?
这就是我的下拉查询的样子:

SELECT Version_Change.ObjectID, Version_Change.Key FROM Version_Change 
UNION 
SELECT "(All)" as ObjectID,"" as Key FROM Version Change;

【问题讨论】:

  • 为什么要标记 3 个不同版本的 Access ??
  • 你有关于 [ObjectId] 的索引吗?有多少条记录?
  • 我正在查询的表中有几条(+10k)条记录,但查询的最终结果只显示了10条记录。
  • 是否涉及网络,或者只是一个独立的桌面数据库?
  • 不。我查询的表是本地表,所以在桌面上。查询运行得很好..而且很快..问题出在下拉列表中。

标签: ms-access ms-access-2010 ms-access-2007 ms-access-2013


【解决方案1】:

通过基于复杂查询的第二个 UNION 部分,然后使用 UNION 而不是 UNION ALL 过滤掉重复项,会增加不必要的复杂性。

试试这个:

创建一个带有一个字段的虚拟表DummyOneRecord(无所谓)并添加一条记录。

然后使用(注意 UNION ALL)

SELECT Version_Change.ObjectID, Version_Change.Key FROM Version_Change 
UNION ALL
SELECT "(All)" as ObjectID, "" as Key FROM DummyOneRecord;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2017-03-24
    相关资源
    最近更新 更多