设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1449|回复: 1
打印 上一主题 下一主题

复杂查询问题,请教各位大大

[复制链接]
跳转到指定楼层
1#
发表于 2017-8-16 17:50:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题描述

我需要实现的功能是:
依据[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的使用?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2017-8-16 18:50:47 | 只看该作者
查询1和查询2,解决了

SELECT MAX ([14].送检日期) AS 送检日期 INTO lsb1
FROM 14, 35
WHERE ((([14].代表日期)<=[35].[施工日期]))
GROUP BY [35].ID;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-29 14:29 , Processed in 0.094850 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表