前のレコードと値が同じ場合に「同上」「〃」「々」などを表示する

f:id:accs2014:20161210172641p:plain:right:w600

 レポートのテキストボックスには「重複データ非表示」というプロパティがあります。
 これを利用することで、1つ前のレコードと同じ値である場合にその値を表示させないということができ、詳細セクション内でグループヘッダー的な表示を行うに場合に便利です。
 しかし、例えば右のようなレポートの場合は、表示を簡略にするにしても非表示にするのではなく、「〃」とか「同上」などと表示させる方がよいと思われます。
 以下では「〃」と表示させることとし、その方法について説明します。


方法1:テキストボックスの重ね合わせを利用する方法

f:id:accs2014:20161210184239p:plain:right:w600

 デザインビューで、「="〃"」をコントロールソースとするテキストボックスを設け、先においてあるテキストボックスの裏側に重ねます。
 先においてあるテキストボックスより前に表示されてしまう場合は右クリックし「位置」>「最背面に移動」を選択してください。


f:id:accs2014:20161210172638p:plain:right:w600

 あとは、先においてあるテキストボックスの「重複データを非表示」を「はい」にします。


f:id:accs2014:20161210172637p:plain:right:w600

 印刷プレビューです。
 前のレコードと異なる値の場合はそのまま表示されますし、同じ値の場合は表示されませんのでその背後にある「〃」が表示されます。


方法2:テキストボックスのIsVisibleプロパティを参照する方法

f:id:accs2014:20161210172636p:plain:right:w600

 こちらは、値が1つ前のテーブルと同じか異なるのかを把握した上で表示を制御する方法です。

 まず、次のようなテキストボックスを置きます。このテキストボックスは表示用ではありません。また、「基調判断」というフィールドは、通常表示されるべき文字列を格納しているフィールドです。

名前:基調判断txt
コントロールソース:=[基調判断]
重複データ非表示:はい

 そして、文字列を表示するテキストボックスのコントロールソースを次のようにします。

=IIf([基調判断txt].[IsVisible]=True,[基調判断],"           〃")

※スペースが複数含まれているので不自然に改行されているように見えるかもしれません。

 テキストボックス「基調判断txt」では重複データ非表示プロパティを「はい」としています。フィールド「基調判断」の値が1つ前のレコードと異なる場合は非表示とならず、このテキストボックスのIsVisibleプロパティはTrueとなります(Visibleプロパティではありませんので注意してください)。また、「基調判断」の値が1つ前のレコードと同じ場合はFalseとなります。このプロパティを参照して表示を切り替えるというわけです。

 注意点ですが、テキストボックス「基調判断txt」が表示用のコントロールではないからといって「可視」プロパティを「いいえ」にしてしまうと、IsVisibleプロパティが常にFalseとなり、うまくいきません。このテキストボックスは単に小さくし、境界線を透明にすることで見えないようにします。


f:id:accs2014:20161210172703p:plain:right:w600

 印刷プレビューです。
 先の例より手順としては面倒ですが、値が1つ前のレコードと同じかどうかを具体的に把握できることから、さらに凝った表示が可能であることがポイントです。