ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5816|回复: 15

[求助] 【案例】如何用窗体实现更新查询表?(又有新问题想不通了,求解)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-1-15 12:24 | 显示全部楼层 |阅读模式
如附件
数据库已建立
客户订单明细表:是所有的销售数据。
投资金:是指“产品代码”以“20”开头的产品。Like "20*"
熊猫金:是指“产品代码”已“17”开头,并含“T”的产品。Like "17*T*"
收藏金:是指剩下的其余产品。Not Like "20*" and Not Like "17*T*"

由于需要进行时间段汇总查询,所以每次统计均需修改查询表内的“销售时间”的条件。
是否能做一个窗体(附件中已增加),通过输入查询起、止时间,系统自动查询指定时间段内产品的销售量,并更新至存在的三张查询表内(投资金、熊猫金、收藏金)
————————————————————————————————————————————————————————————
第二次(已解决)
再次感谢“zez”上次的回答。
针对这个数据库还有个问题,是否能把三种产品的数据查询到一张表里面,亦即:
分行号    投资金     熊猫金      收藏金
A分行    100w        200w                300w
B分行    ...    ...    ...
————————————————————————————————————————————————————————————
我现在数据源是“客户订单明细”表,现要增加一个查询数据源“客户订单明细2010”(即2010年的数据)
现希望对“客户订单明细”、“客户订单明细2010”进行联合查询,语句编写如下
SELECT 客户订单明细.分行号, Sum(IIf([产品代码] Not Like "20*" And [产品代码] Not Like "17*t*",[总金额],0)) AS 收藏金, Sum(IIf([产品代码] Like "20*",[总金额],0)) AS 投资金, Sum(IIf([产品代码] Like "17*t*",[总金额],0)) AS 熊猫金
FROM 客户订单明细
where (((CDate(Left([销售日期],4) & "/" & Mid([销售日期],5,2) & "/" & Right([销售日期],2)))<=[Forms]![查询窗体]![查询终止日期] And (CDate(Left([销售日期],4) & "/" & Mid([销售日期],5,2) & "/" & Right([销售日期],2)))>=[Forms]![查询窗体]![查询起始日期]) AND ((客户订单明细.订单状态)<>"3"))

union all

SELECT 客户订单明细2010.分行号, Sum(IIf([产品代码] Not Like "20*" And [产品代码] Not Like "17*t*",[总金额],0)) AS 收藏金, Sum(IIf([产品代码] Like "20*",[总金额],0)) AS 投资金, Sum(IIf([产品代码] Like "17*t*",[总金额],0)) AS 熊猫金
FROM 客户订单明细2010
where (((CDate(Left([销售日期],4) & "/" & Mid([销售日期],5,2) & "/" & Right([销售日期],2)))<=[Forms]![查询窗体]![查询终止日期] And (CDate(Left([销售日期],4) & "/" & Mid([销售日期],5,2) & "/" & Right([销售日期],2)))>=[Forms]![查询窗体]![查询起始日期]) AND ((客户订单明细.订单状态)<>"3"))

GROUP BY 分行号;
但系统报“视图执行的查询中不包含作为聚合函数一部分的特定表达式'分行号'”

[ 本帖最后由 lyxiang 于 2011-1-19 10:10 编辑 ]

数据库.rar

48.77 KB, 下载次数: 59

TA的精华主题

TA的得分主题

发表于 2011-1-15 13:28 | 显示全部楼层
收藏金:
SELECT 客户订单明细.分行号, Sum(客户订单明细.总金额) AS 总金额之总计
FROM 客户订单明细
WHERE (((客户订单明细.销售日期)<=[Forms]![查询窗体]![查询终止日期] And (客户订单明细.销售日期)>=[Forms]![查询窗体]![查询起始日期]) AND ((客户订单明细.订单状态)<>"3") AND ((客户订单明细.产品代码) Not Like "20*" And (客户订单明细.产品代码) Not Like "17*t*"))
GROUP BY 客户订单明细.分行号
投资金“
SELECT 客户订单明细.分行号, Sum(客户订单明细.总金额) AS 总金额之总计
FROM 客户订单明细
WHERE (((客户订单明细.销售日期)<=[Forms]![查询窗体]![查询终止日期] And (客户订单明细.销售日期)>=[Forms]![查询窗体]![查询起始日期]) AND ((客户订单明细.订单状态)<>"3") AND ((客户订单明细.产品代码) Like "20*"))
GROUP BY 客户订单明细.分行号;
熊猫金:
SELECT 客户订单明细.分行号, Sum(客户订单明细.总金额) AS 总金额之总计
FROM 客户订单明细
WHERE (((客户订单明细.销售日期)<=[Forms]![查询窗体]![查询终止日期] And (客户订单明细.销售日期)>=[Forms]![查询窗体]![查询起始日期]) AND ((客户订单明细.订单状态)<>"3") AND ((客户订单明细.产品代码) Like "17*t*"))
GROUP BY 客户订单明细.分行号;

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-15 16:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
再问下 这段东西应该加在哪里呀 我加在按钮触发上面,如下,系统老报错 "缺少:case"
Private Sub Command0_Click()
'收藏金:
SELECT 客户订单明细.分行号, Sum(客户订单明细.总金额) AS 总金额之总计
FROM 客户订单明细
WHERE (((客户订单明细.销售日期)<=[Forms]![查询窗体]![查询终止日期] And (客户订单明细.销售日期)>=[Forms]![查询窗体]![查询起始日期]) AND ((客户订单明细.订单状态)<>"3") AND ((客户订单明细.产品代码) Not Like "20*" And (客户订单明细.产品代码) Not Like "17*t*"))
GROUP BY 客户订单明细.分行号
End Sub

TA的精华主题

TA的得分主题

发表于 2011-1-15 17:20 | 显示全部楼层
SQL语句改一下,窗体也作了修改

[ 本帖最后由 zez 于 2011-1-15 17:22 编辑 ]

数据库.rar

56.8 KB, 下载次数: 147

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-15 17:50 | 显示全部楼层
啊 非常感谢 已能实现主要功能了。
以前都是用excel做的报表,感觉一旦数据量大了以后excel运行起来太慢了。所以才求助于access,刚用了2天。
以后还是会陆续有问题请教,到时请一定不吝赐教。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-17 10:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-1-17 11:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
SELECT 分行汇总查询.分行号, 投资金.总金额之总计 AS 投资金, 熊猫金.总金额之总计 AS 熊猫金, 收藏金.总金额之总计 AS 收藏金
FROM (((SELECT 客户订单明细.分行号
FROM 客户订单明细
GROUP BY 客户订单明细.分行号) AS 分行汇总查询 LEFT JOIN 投资金 ON 分行汇总查询.分行号 = 投资金.分行号) LEFT JOIN 熊猫金 ON 分行汇总查询.分行号 = 熊猫金.分行号) LEFT JOIN 收藏金 ON 分行汇总查询.分行号 = 收藏金.分行号;

TA的精华主题

TA的得分主题

发表于 2011-1-17 11:40 | 显示全部楼层
SELECT 客户订单明细.分行号, Sum(IIf([产品代码] Not Like "20*" And [产品代码] Not Like "17*t*",[总金额],0)) AS 收藏金, Sum(IIf([产品代码] Like "20*",[总金额],0)) AS 投资金, Sum(IIf([产品代码] Like "17*t*",[总金额],0)) AS 熊猫金
FROM 客户订单明细
WHERE (((CDate(Left([销售日期],4) & "/" & Mid([销售日期],5,2) & "/" & Right([销售日期],2)))<=[Forms]![查询窗体]![查询终止日期] And (CDate(Left([销售日期],4) & "/" & Mid([销售日期],5,2) & "/" & Right([销售日期],2)))>=[Forms]![查询窗体]![查询起始日期]) AND ((客户订单明细.订单状态)<>"3"))
GROUP BY 客户订单明细.分行号;

[ 本帖最后由 zez 于 2011-1-17 12:07 编辑 ]

数据库.rar

60.1 KB, 下载次数: 80

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-17 12:43 | 显示全部楼层
原帖由 zez 于 2011-1-17 11:40 发表
SELECT 客户订单明细.分行号, Sum(IIf([产品代码] Not Like "20*" And [产品代码] Not Like "17*t*",[总金额],0)) AS 收藏金, Sum(IIf([产品代码] Like "20*",[总金额],0)) AS 投资金, Sum(IIf([产品代码] Like "17* ...



再次感谢。原来要在这里加东西,恍然大悟。
看到语句中用到了“CDATE”是标准化日期格式的对吧。但是为什么里面还要跟Left mid right这些参数,直接把日期放在里面不就可以了?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-19 10:10 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-9 05:04 , Processed in 0.030002 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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