ACCESS裡用VBA寫SQL的迴圈,我觉得碰到一个大问题,想了很久
我的查询来源只有一张表格,暂时称之为t1, 我的想法是查询时首先让用户输入年份,比如说:2012-2014.
表1中有一个欄位是年份,有2011,2012,2013,2014不等,另有诺干个欄位a,b,c,d.
当用户输入2012-2014 时, 我想要的sql语言是 select sum(IIf(year=2011,a,IIf(year=2012,a+b,IIf (year=2013,a+b,IIf(year=2014,b,0)))))
from t1
group by Supplier,
就是先把用户输入的起始年份退一年选欄位a,最后一年选欄位b,中间的年份选择a+b,按照供货商进行分组总和.
我单纯用sql其实功能已经实现,但由与年份实在太多,我不可能预先将所有可能表格都做好,所以我就想结合vb,根据用户的输入来生成表格.
比如输入2001-2007,那就是select sum(IIf(year=2000,a,IIf(year=2001,a+b,等等直到IIf (year=2006,a+b,IIf(year=2007,b,0)))))
如果输入2012-2012,就表示只想查看一年,那对应的就是select sum(IIF(year=2011,a,IIf(year=2012,b,0))).
我感觉是用迴圈来实现,只查询一年,生成两个iif,查询2年,就生成3个iff,...,查询5年生成6个iif,可我想了很久还是没作出来,求各位大大指点,不胜感激.