Office中国论坛/Access中国论坛
标题:
复杂查询问题,请教各位大大
[打印本页]
作者:
lanlow1
时间:
2017-8-16 17:50
标题:
复杂查询问题,请教各位大大
问题描述
我需要实现的功能是:
依据[35].[施工日期], 以及 [35窗体]![出具方式] , 查询出[14].[水泥编号]
我的笨思路是
1 [35窗体]![出具方式] 确定 在[14].中使用那个,是[代表日期],还是[送检日期],还是[出具日期]
例如,[35窗体]![出具方式]=送检日期, [14]中取[送检日期]
2 依据[35].[施工日期] 和 [14].[送检日期], 查询[14],取[14].[送检日期]<=[35].[施工日期]的所有值,update到[lsb1]
3 取[lsb1].[施工日期]的最大值,GROUP BY [lsb1].ID,update到[lsb2]
4 依据[lsb2].[施工日期],查询[14].[水泥编号],update到[lsb3]
5 将查询的[lsb3].[水泥编号] update到[35].[水泥编号]中
我的解决方案
1 创建三个查询,(35查询1_1),(35查询1_2),(35查询1_3),分别是根据[代表日期]、[送检日期]、[出具日期]进行的查询,update到[lsb1]
2 创建查询(35查询2),查询[lsb1].[施工日期]的最大值,GROUP BY [lsb1].ID,update到[lsb2]
3 创建查询(35查询3),依据[lsb2].[施工日期],查询[14].[水泥编号],update到[lsb3]
4 创建查询(35查询4),将查询的[lsb3].[水泥编号] update到[35].[水泥编号]中
5 创建宏(35原材料确定),使用IF,选择使用(35查询1_1)还是(35查询1_2)还是(35查询1_3),再一次使用(35查询2)(35查询3)(35查询4)
6 在(35窗体)中,添加按钮,运行宏。
我的问题
1 怎样一步将([14].[送检日期]<=[35].[施工日期]的最大值)取出来?
2 怎么根据条件([代表日期]、[送检日期]、[出具日期])进行查询,是否是IIF??
怎样使用?
3 我需要查询的结果是最少17项,我的笨办法需要建立17*6=102个查询(而且有的项需要条件判定,有的不需要),才能实现所有的结果,而且都是UPDATE,想想就可怕。
怎样将这些查询合并成一个或几个?
我的疑问
1 按钮的事件过程中是否可以写这些查询?这样我就可以复制黏贴修改,省很多过程。
2 如何减少update的使用?
作者:
lanlow1
时间:
2017-8-16 18:50
查询1和查询2,解决了
SELECT MAX ([14].送检日期) AS 送检日期 INTO lsb1
FROM 14, 35
WHERE ((([14].代表日期)<=[35].[施工日期]))
GROUP BY [35].ID;
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3