代码改变世界

Access SubReport Orderby

2013-05-23 15:57  昏晓  阅读(227)  评论(0编辑  收藏  举报

这篇文章的名字我特别想叫做“神奇的Access”,想想还是算了,我不是对Access有偏见,或许这个问题在别人哪里不算神奇,只是我不知道罢了。

问题

下面是一个在Access中通过Report制作的一个化学品的Specification,报表的Test/Standard部分中的一级条目是在一个Report中实现的,二级条目(如UV Absorbance中的310nm A等)是在子报表中实现的,现在我想对子报表中条目进行排序。

解决

按照http://msdn.microsoft.com/en-us/library/office/aa173175%28v=office.11%29.aspx中的说明,只要设置子报表的OrderBy为要排序的字段名称,OrderByOn属性为“Yes”就可以了。可是我反复测试了,就是不管用:

帮助中的原文是:The OrderBy property is a string expression that is the name of the field or fields on which you want to sort records。我就这么做:

  1. 把Report的Orderby属性设置为要排序的字段sorting(当然OrderByOn=‘Yes'),不管用;
  2. 那么在Report的RecordSource属性的SQL查询语句中添加sorting字段,不管用;
  3. 那么我把上面那段话中的“field”理解错了,“field”应该是Report上一个控件的名称?那在Report中添加一个名称为sorting的字段,不管用;
  4. google查询“Access Report Orderby",没发现有意义的结果;
  5. Access911.net,我经常在这个网站上能找到种种解决方法,但是这次失望了;
  6. stackoverflow.com,有类似的问题,但跟我上面的场景不一样,并且也是在用OrderBy和OrderByOn,未果;
  7. 我就开始“基于巧合的查找”了,在google上乱看,乱试,还真让我试出来了,有人说这样:在设计视图中打开Report,然后选菜单:视图-->排序与分组,在其中添加要排序的字段,我试了一下,这样真的行,于是问题就解决了。

但是我真不喜欢这种“基于巧合的查找”或“基于巧合的编程”,太浪费时间了。按照正常的思维解决问题,咋就这么难,我能说一句“神奇的Access”吗?