交叉表查询引用窗体控件值错误的解决方法-杜小杰
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


交叉表查询引用窗体控件值错误的解决方法

发表时间:2014/6/14 9:13:13 评论(2) 浏览(9985)  评论 | 加入收藏 | 复制
   
摘 要:Access有时候真的不太听话!
建立了一个普通的汇总查询,其中包含了窗体上几个文本框的值,查询语句如下所示:
正 文:

Select middle.delivery, middle.equipment, Sum(sumbatch*worktime/yield/forms!FCSTcapacity!txtparaday/forms!FCSTcapacity!txtparahour/60/middle.number) AS loading FROM middle GROUP BY middle.delivery, middle.equipment

查询结果正常。后来为了调整格式,又在此查询的基础上采用交叉表查询,以更好的方式呈现结果,查询语句如下所示:

TRANSFORM wloading.loading AS loading之總計 Select wloading.equipment FROM wloading GROUP BY wloading.equipment PIVOT wloading.delivery

本来以为没什么问题,因为只是格式的转换而已,没想到,当运行查询时却提示以下错误:

真是郁闷,自己捣鼓了半天,在论坛上问了很多人,都没有弄明白,因为这个窗体控件确实是赋值了的,而且引用的方式和写法完全都没有问题,所以最终确定是Access本身的事情,人家就是不让你这么写!

没办法,只好曲线救国了!

既然交叉表查询不让引用窗体控件值,那咱就不引用,可又怎么保证结果随着窗体控件值的变化而变化呢,也就是说交叉表查询要求使用一张有具体数值的表,而实际需求根据控件值进行查询,所以我们就想到了一种查询方法——生成表查询,也就是说查询的结果生产了一张普通的不能再普通的表,而这张表肯定是可以被交叉表查询所使用的。

所以写下这个生成表查询语句:

 Select Middle.delivery, Middle.equipment, Sum([sumbatch]*[worktime]/[yield]/Val(forms!FCSTcapacity!txtparaday)/Val(forms!FCSTcapacity!txtparahour)/60/middle.number) AS loading INTO wloading FROM Middle GROUP BY Middle.delivery, Middle.equipment

然后再在生产的表上建立交叉表查询:

 TRANSFORM format$(Sum(wloading.loading),"percent") AS loading之總計 Select wloading.equipment FROM wloading GROUP BY wloading.equipment PIVOT wloading.delivery;

如此就解决了交叉表查询无法正确引用窗体控件值的问题。


Access软件网交流QQ群(群号:198465573)
 
 相关文章
使用VBA代码创建引用  【lyxiong  2012/4/2】
Access运行时错误'2455':您输入的表达式对属性Form/...  【麥田  2012/9/28】
Access运行时错误'2185':除非控件获得焦点,否则您不能引...  【杜超-2号  2013/11/10】
Access快速开发平台--重新引用代码库RDPLib.ucl方法...  【杜超-2号  2013/11/21】
盟威软件快速开发平台V1.7.1不能找到表达式中引用的字段"|1"...  【麥田  2013/12/3】
【Access懒人工具】用VBA代码重新引用ADO  【麥田  2013/12/5】
【Access懒人工具】用VBA代码自动引用树控件|代码引用Mic...  【麥田  2013/12/6】
【Access懒人工具】用VBA代码自动引用OLE项|代码引用OL...  【麥田  2013/12/7】
常见问答
技术分类
相关资源
文章搜索
关于作者

杜小杰

文章分类

文章存档

友情链接