Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

交叉表查询为何不能象一般查询那样在设计视图条件项内设置参数

Lee  发表于:2010-05-21 21:29:38  
复制

交叉表查询内有一“进仓日期”字段,我想象一般查询那样,在设计视图条件项中设置一日期范围:between[进仓日期从]and[到],运行时却弹出窗口“数据库引擎不能将'[进仓日期从]'识别为一个有效的字段名或表达式”。

我又试在菜单栏“工具”——“参数”中进行同样设置,虽没弹出以上窗口,但“确定”后设计视图条件项中没参数,证明参数设置不成功。

请问怎会这样?应怎样解决?

 

Top
Lee 发表于:2010-05-21 21:31:13

上传示例供研究。



Lee 发表于:2010-05-21 21:32:42

上传不成功,再传一次

点击下载此附件

蒋元根 发表于:2010-05-22 07:11:14
飞来 发表于:2010-05-22 14:24:39
这个例子很好

Lee 发表于:2010-05-22 21:33:25

蒋先生示例很好,能对参数:

Between IIf(IsNull([FORMS]![查询数据]![起始]),#1980-1-1#,[FORMS]![查询数据]![起始]) And IIf(IsNull([FORMS]![查询数据]![结束]),#2020-12-31#,[FORMS]![查询数据]![结束])

为例说明一下交叉表查询参数为何要这样复杂的设置吗?我想读者对此会受益非浅。



蒋元根 发表于:2010-05-23 05:18:36

说明:1。access要求:如果参数查询是交叉表查询或者是交叉表

查询的基础查询。需要为参数指定数据类型。
2。Between IIf(IsNull([FORMS]![查询数据]![起始]),#1980-1

-1#,[FORMS]![查询数据]![起始]) And IIf(IsNull([FORMS]![查

询数据]![结束]),#2020-12-31#,[FORMS]![查询数据]![结束]),

是为了a.在[查询数据]窗体指定指定查询日期范围时,按指定查

询日期范围显示数据。b.在没有指定查询日期范围的情况下能够

围显示全部数据。3。也可以设置为:Between [请输入起始日

期]) And [请输入结束日期],同样需要为参数指定数据类型。

点击下载此附件

Lee 发表于:2010-05-23 17:35:59

蒋先生,第二次的示例是先生成一个普通的查询并在查询中用“between...and...”设置好参数[请输入起始日期]和[请输入结束日期],然后用SQL语句“TRANFORMS...PIVOT...”进行行列转换生成交叉查询表,这样交叉查询表就保持了原来的参数了,对吗?

恕我愚昧,如不用SQL语句转换,生成一个普通查询后,再在此基础上用ACCESS的查询设计生成一个交叉查询表,参数要如何设置,因我对“为参数指定数据类型”始终不是很了解。麻烦再指点一二。



蒋元根 发表于:2010-05-23 20:43:41

SQL语句是access自动转换的.具体为:1先生成一个普通的查询并在查询中用“between...and...”设置好参数[请输入起始日期]和[请输入结束日期];2为参数指定数据类型;3生成交叉查询表.

点击下载此附件

Lee 发表于:2010-05-23 21:36:38
终于明白了,在生成普通查询并设置好参数后,还要在该查询设计视图——菜单选项——查询——参数中进行相同的设置,再生成交叉表查询,这样才达到按参数查询的目的。谢谢蒋先生耐心指导!

总记录:9篇  页次:1/1 9 1 :