在Microsoft Access查询中使用数组

时间:2015-12-24 14:47:25

标签: sql vba ms-access

我在Microsoft Access中有一个查询,它会更新表格(I_Postcodes)中的邮政编码/邮政编码,其distancetime来自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功能两次的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

使用静态变量在GetDistance函数中返回数组和先前的参数值。如果参数相同且数组已经有有效值,则从静态变量返回数组,否则计算时间/距离。