• ベストアンサー

ACCESS レポートへの表示・非表示

フォームで入力項目を無視し、データを入れなかった場合のレポートへの非表示をお聞きします。 下記のデータをレポートで表示する際、文章中に組み込んでいるのですが、データが無かった場合は前後の文章も 非表示にするにはどうすればよいのでしょうか? 例えば:下記のような入力フォームがあります。 □お客様氏名   山田花子 □契約日      05/10/04 □総額       50万円 □支払回数    10回 □分割支払金額 5万円 ★レポート表示★ 山田花子様へ 平成17年10月4日のご契約ありがとうございます。 お支払内容についてお知らせします。 -分割金総額50万円の内、5万円をお支払日に口座からお引き落しいたします。- お支払回数は10回となります。 ★上記の内容が1回払いの時は、以下のようにするにはどうすれば良いのでしょうか?★ 山田花子様へ 平成17年10月4日のご契約ありがとうございます。 お支払内容についてお知らせします。 お支払回数は1回となります。 ご回答よろしくお願いいたします!!

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

#1の方とは違うやり方は IIf関数を使って分岐させて表示するようにすれば出来ます。IIf関数は結構使えますので 入力フォームが開いていてそのフォーム上のレコードをレポートに出力するとして・・ レポートに非連結のテキストコントロールを作りコントロールソースに =[Forms]![フォーム名]![お客様名] & "様へ" で1行目の 山田花子様へ(フォーム上のお客様名に表示されているレコード) が出来ます。 2行目は同様にテキストコントロールを作りコントロールソースに =Format(Forms!フォーム名!契約日,"ggge\年mm\月dd\日") & "のご契約ありがとうございます。" 3行目は固定のようなのでラベルで お支払内容についてお知らせします。 で良いと思います。 4行目もテキストコントロールを作り =IIf(Forms!フォーム名!支払回数>1,"-分割金総額" & Forms!フォーム名!総額 & "の内、" & Forms!フォーム名!分割支払回数 & "をお支払日に口座からお引き落しいたします。-","お支払回数は" & Forms!フォーム名!支払回数 & "回となります。") この記述で支払回数が1より大きい場合は -分割金総額(フォーム上の総額の値)の内、(分割支払金額の値)をお支払日に口座からお引き落しいたします。-  になります。1の場合はお支払回数は1回となります。と表示します。 5行目も同様です =IIf(Forms!フォーム名!支払回数>1," お支払回数は" & Forms!フォーム名!分割支払回数 & "回となります。","") 支払回数が1より大きい場合はフォーム上の支払回数の値をお支払回数は(支払回数の値)回となります。と表示し1の場合は""で空白で表示されます。 各行のテキストコントロールを作らなくてはいけませんがIIfの分岐で処理すれば出来ます。 各記述をコピーしてフォーム名を使っているフォーム名に変更すれば出来ます。

noname#89109
質問者

お礼

ご回答ありがとうございます。 IIf関数でやってしまった後、ご回答、拝見しました。 >IIf関数は結構使えますので 私も良く使います^^! 他の関数や違うやり方でやってみたかったのですが。。。 もっと勉強しま~す!!

その他の回答 (1)

noname#79209
noname#79209
回答No.1

私なら、 レポート上に「非連結」のテキストコントロールを置き、 そのテキストコントロールを置いたセクションのFormatイベントに、そのテキストコントロールへ文字列を代入するコードを書きます。 「○○様へ」から「有難うございます」を入れ、 さらにその後、分割払いなら 「-分割金総額...」の文言を入れ さらに「お支払回数...」を追加します。 改行を入れたいときは「VbCrLf」でつなげればOKです。 例: strAnnounce = Me(氏名) & "様へ" & VbCrLf strAnnounce = strAnnounce & Format(Me(契約日付),"ggge年m月d日") & "のご契約有難うございます。" & VbCrLf & "お支払内容についてお知らせします。" & VbCrLf If Me(支払価数) > 1 Then strAnnounce = strAnnounce & "-分割金額..." & VbCrLf End If strAnnounce = strAnnounce & "お支払回数は" & Me(支払回数) & "回になります。"

noname#89109
質問者

お礼

お返事おそくなりました。 結局、IIf関数でやってしまいました。。。 次回は、教えていただいた文字列の代入を使ってみたいと思います。ありがとうございました!

関連するQ&A