我在Microsoft Access中有一个查询,它会更新表格(I_Postcodes
)中的邮政编码/邮政编码,其distance
和time
来自base
来源邮政编码(在I_BasePostcode
中保存)到相关的邮政编码。
仅用于确定距离的Access
查询是:
UPDATE I_Postcodes, I_BasePostcode
SET I_Postcodes.DistanceFromBase = GetDistance(I_BasePostcode.Postcode,I_Postcodes.Postcode)
WHERE (I_Postcodes.DistanceFromBase Is Null);
I_BasePostcode
表格如下:
+----------+
| Postcode |
+----------+
| LS1 3EX |
+----------+
来自I_Postcodes
表的摘录如下:
+----------+------------------+--------------+
| Postcode | DistanceFromBase | TimeFromBase |
+----------+------------------+--------------+
| SW13 9EE | 50 | 200 |
| SW13 9EF | 50 | 201 |
| SW13 9EG | 52 | 210 |
+----------+------------------+--------------+
GetDistance
函数对于这个问题的目的有点复杂,但它可以正常工作,并返回一个由两个值组成的数组:距离整数和时间整数。我可以通过以下方式访问:
' Distance
GetDistance(Origin, Destination)(0)
' Time
GetDistance(Origin, Destination)(1)
我想更新我的查询以包含前往目的地所需的时间,但我不确定如何在不调用GetDistance
功能两次的情况下执行此操作?
答案 0 :(得分:1)
使用静态变量在GetDistance函数中返回数组和先前的参数值。如果参数相同且数组已经有有效值,则从静态变量返回数组,否则计算时间/距离。