2011年9月7日水曜日

Access2007 レポートのフィルター Betweenは凶

Access2007のレポートのフィルターを掛けるとき、Betweenは使っちゃダメ!ってことを発見しました。

どの言語にも癖がありますが、今日ハマったのはAccess2007のフォームフィルター
formにフィルターを掛けるときは、SQL構文のwhereを除いたものでOKとなっているので

ymd1 between #2010/1/1# and #2012/3/1#
 なんてのでよくて、その後
form.filter = "ymd1 between #2010/1/1# and #2012/3/1#
form.filterOn = true
 で自動的にフィルターが掛かります。

さて、画面(フォーム)に表示したものと同じ内容をレポートに印刷しようとした時、単純にレポートにも同じプロパティー(filter)があるので、これにformと同じ値を設定しようとしたら、叱られました。

どうやら問題は 「between」にあるようです
Betweenを他の式に置き換えると通ります。
仕方なく
ymd1 >= #2010/1/1# and ymd1 <= #2012/3/1#
という式に置き換え問題を回避しました。
まったくもってわけのわからない現象です。

0 件のコメント: