煮江老师的意思是,当放在VBA中时,比如运行Docmd.RunSQL时,用他的写法;
你的查询里,正常写就行啊.
我看你代码的意思,是查找某段时间内,药品的入库与出库记录,对吧?
如果是这样的话,根据我的经验,应该先建立2个子查询:
1.入库数量与日期子查询:
Select 药品ID,药品名称,入库数量,入库日期 As 日期 Form 入库记录 Where ((入库记录.入库日期) Between [Forms]![Frm_日期区段查询]![StartDate] And [Forms]![Frm_日期区段查询]![EndDate]);
2.出库数量与日期子查询:
Select 药品ID,药品名称,出库数量,出库日期 As 日期 Form 出库记录 Where ((出库记录.出库日期) Between [Forms]![Frm_日期区段查询]![StartDate] And [Forms]![Frm_日期区段查询]![EndDate]);
之后,建立联合查询[药品入出库时间轴子查询]如下:
Select [药品ID],[日期]
From 入库数量与日期的子查询
UNION
Select [药品ID],[日期]
From 出库数量与日期的子查询;
最后,建立一个目标查询[药品入出库查询]如下:
SELECT 药品入出库时间轴子查询.药品ID, 药品入出库时间轴子查询.日期, 入库数量与日期子查询.入库数量, 出库数量与日期子查询.出库数量
FROM (药品入出库时间轴子查询 LEFT JOIN 入库数量与日期子查询 ON (药品入出库时间轴子查询.日期 = 入库数量与日期子查询.日期) AND (药品入出库时间轴子查询.药品ID = 入库数量与日期子查询.药品ID)) LEFT JOIN 出库数量与日期子查询 ON (药品入出库时间轴子查询.日期 = 出库数量与日期子查询.日期) AND (药品入出库时间轴子查询.药品ID = 出库数量与日期子查询.药品ID)
ORDER BY 药品入出库时间轴子查询.药品ID;