天天看点

【Access数据库】关于带参数的交叉表查询

查了一圈,网上关于带参数的交叉表查询的介绍很少。

1.用SQL语句写带参数的交叉表查询的话,不能用having语句设置条件,必须用where。

2.where语句里不能像普通参数查询一样写模糊查询,必须是精确的。

3.即使用了where,也要在最开始写类似PARAMETERS [请输入XXX] Text ( 255 );这样的语句。作用是以“请输入XXX”为名定义了一个新变量。

这也是参数查询的本质:[]的真正意义是将变量名括起来,包括字段变量名和参数变量名。我们在条件行输入的[Enter Start date],Access 检测其不是表名,字段名,保留字符的新名字后,就会隐性定义了一个名为“Enter Start date”的变量,之后弹出的对话框,用户输入的数据就被赋给这个新变量了。

因为这个变量名中间有空格,我们必须用方括号把它括起来。如果没有空格的变量名,其实是可以不带[]使用的,如下:

【Access数据库】关于带参数的交叉表查询

但是没有查到为什么交叉表查询不能模糊查询、为什么一定要显式声明变量…我猜,是语法规定如此

参考文章:https://blog.csdn.net/gracexu/article/details/2146558

其他发现的问题:

窗体数据输入到交叉表做参数出错http://www.office-cn.net/forum.php?mod=viewthread&tid=13479

在交叉表加参数,带表达式出错http://www.accessoft.com/blog/article-show.asp?userid=193&Id=4576

马https://stackoverflow.com/questions/11292270/hide-a-column-in-cross-tab-depending-on-the-value-of-parameter-crystal-reports