【发布时间】:2014-01-02 22:52:57
【问题描述】:
我创建了一个 Access 数据库,其中包含一个用户创建的路由规则表,这些规则将决定在下订单时应该使用哪个卡车司机。至少,一条规则必须有一个 DEST_ST,但其他四个字段可以留空,以便根据需要尽可能宽泛或具体(空白与“ALL”同义):
DEST_ST PLNT PKNG_TYPE MODEL DEALER TRUCKER
-----------------------------------------------------------------------
PA 1 PALLET 25 SMITH BROS
PA 1 CONOVER
PA IDLEWILD
目的是对于给定的订单,我想返回适用的最具体的规则。例如,以下顺序将分配给 CONOVER:
DEST_ST PLNT PKNG_TYPE MODEL DEALER
-------------------------------------------------------
PA 1 RACK 4AL 25
虽然此订单将分配给 SMITH BROS:
DEST_ST PLNT PKNG_TYPE MODEL DEALER
-------------------------------------------------------
PA 1 PALLET 5AL 25
最后这个订单将分配给 IDLEWILD:
DEST_ST PLNT PKNG_TYPE MODEL DEALER
-------------------------------------------------------
PA 2 PALLET 5AL 25
从概念上讲,我的解决方案是按优先顺序运行最多 16 个 SQL 查询(每个排列一个),直到返回记录:
DEST_ST PLNT PKNG_TYPE MODEL DEALER
-------------------------------------------
1. MATCH MATCH MATCH MATCH MATCH
2. MATCH MATCH MATCH MATCH
3. MATCH MATCH MATCH MATCH
4. MATCH MATCH MATCH
5. MATCH MATCH MATCH MATCH
6. MATCH MATCH MATCH
7. MATCH MATCH MATCH
8. MATCH MATCH
9. MATCH MATCH MATCH MATCH
10. MATCH MATCH MATCH
11. MATCH MATCH MATCH
12. MATCH MATCH
13. MATCH MATCH MATCH
14. MATCH MATCH
15. MATCH MATCH
16. MATCH
鉴于我提出的解决方案,是否有一种直接的方法可以在 VBA 中实现这一点,还是我应该完全不同地处理这个问题?
【问题讨论】:
标签: sql ms-access ms-access-2007 vba