1

我在访问 2010 时遇到问题,我的 dlookup 运行速度非常慢,但如果我已经打开了保存的查询,它运行得很快。任何想法都必须知道为什么会这样以及如何解决这个问题

编辑

txtPurchase_Price = DLookup("Purchase_Price", "qryPurchaseInfo", "ID = " & check)

那是dlookup

查询的sql是

SELECT Receiving.Serial,Purchase_Info.Purchase_Price, Purchase_Info.Check_Number,
  Purchase_Info.Purchase_Date, Purchase_Info.ID, Receiving.Source
FROM Purchase_Info INNER JOIN Receiving ON 
  Purchase_Info.ID = Receiving.Purchase_Price_ID;
4

1 回答 1

1

我不确定您为什么使用查询作为DLookup. Purchase_Info.ID如果您的意图是将允许值的集合限制为也作为值存在的值,那么这是有道理的Receiving.Purchase_Price_ID

但如果是这种情况,请尝试使用更简单的查询。

SELECT
    Purchase_Info.Purchase_Price,
    Purchase_Info.ID
FROM Purchase_Info INNER JOIN Receiving
ON Purchase_Info.ID = Receiving.Purchase_Price_ID;

虽然,我怀疑查询是否会显着提高速度,但我不明白为什么只要你在Purchase_Info.ID和上都有索引,它为什么会变慢Receiving.Purchase_Price_ID

OTOH,如果这不是您的意图,那么您应该能够Purchase_Price直接从您的Purchase_Info表中检索,而无需将其加入到Receiving表中。使用以下索引应该很快Purchase_Info.ID

DLookup("Purchase_Price", "Purchase_Info", "ID = " & check)

最后,我不知道是什么check。它可以是窗体上的控件的名称。但是,不管它是什么,我宁愿给它一个不同的名字,因为它check是一个保留字。我永远无法预测保留字作为对象名称何时会造成麻烦,因此宁愿完全避免使用它们。

于 2012-12-10T21:21:38.010 回答