Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


商品購入先一覧リストの中で同じデータがあれば 〃 で表示する : Access裏技Tips



帳票式レポートの機能の一つとして、同じフィールドで同じデータが続く場合、次レコードのデータを非表示にすることができます。 ここでは、単に非表示にするだけでなく、ある特定の文字(サンプルでは〃)であらわす技をご紹介します。

同じデータがあれば 〃 で表示する

  1. サンプルテーブルをもとにして、「商品購入先一覧リスト」の帳票式レポートを作成します。
  2. このレポートには、同じ商品名が複数ありますので、上下のレコードに同じ商品名が現れる時には、下のレコードの商品名欄に〃を 代入します。
  3. 技術的には、隠しテキストボックスを利用しています。

「商品購入先一覧リスト」レポートの作成

「商品購入先一覧リスト」レポートを作成します。

  1. 詳細セクションに、txt商品テキストボックスと同じ大きさの" 隠しテキストボックス"作成します。
  2. このテキストボックスを txt商品テキストボックスの上にかぶせます。(画像内では、説明のため下段にずらしています)
  3. テキストボックス名をtxt隠しオブジェクトとし、コントロールソースに  = "〃"  と記述します。

今回のおすすめポイント

隠しテキストボックス

フォーム、レポートに配置するテキストボックスで、可視プロパティが"いいえ"になっているのでこのように呼ばれることが多い。
役割は、一時的に値を格納したり、今回のように特定の条件下で表示、非表示を切り替えたりと、多種多様です。

詳細セクションのフォーマットイベントプロシージャの作成

詳細セクションのフォーマットイベントプロシージャを作成する。

Option Compare Database
Option Explicit

Dim varA As Variant ' --- A

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
    
    If Me.txt商品 = varA Then ' --- B
        Me.txt隠しオブジェクト.Visible = True ' --- C
    Else
        Me.txt隠しオブジェクト.Visible = False
    End If

    varA = Me.txt商品 ' --- D
    
End Sub
解説
  1. 変数 varA を 宣言部分に記述しています。このようにすることで、変数値は、プロシージャが終了しても次のプロシージャに値を引き渡すことができます。
  2. Me.txt商品 = varA は、左辺と右辺を比較します。
    左辺に右辺を代入するのではありませんので注意して下さい。 左辺、右辺が等しいと、隠しオブジェクト(txt隠しオブジェクト)の可視プロパティを True (はい)に切り替えます。 逆に、異なると可視プロパティを False(いいえ)に切り替えます。
  3. txt隠しオブジェクトを前レコードの値によって表示、非表示に切り替えます。
  4. varA = Me.txt商品 は、左辺に右辺を代入します。
今回のおすすめポイント

プロシージャ内の = の記号

プロシージャの中で、= は左辺と右辺を比較する場合と左辺に右辺を代入する場合があります。
見分け方は、そのプロシージャの流れの中で判断せざるを得ませんが、例えば、条件節である If  式  Then ...構文の中では、式は 真 (True) か偽 (False) を評価します。 このような時、= は左辺、右辺を比較する用途に用いられます。

動作確認

  1. 「商品購入先一覧リスト」を印刷プレビューモードで開きます。

関連ページ

ページの先頭へ 前ページへ戻る

 


商品購入先一覧リストの中で同じデータがあれば 〃 で表示する : Access裏技Tips


 

-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。