- ベストアンサー
ACCESS2003 レポート表記時の改行について
- 初心者のため、フィールドA~Dの4つのフィールドをレポートに表記する際に、データが空でない場合にのみフィールド名と共にデータを表記し、各フィールドが改行された状態で並び、空のフィールドは行を詰めたい。
- テキストボックス上で処理する方法で改行を入れずに処理する方法はあるか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
横レス失礼致します。 > 何か私の書き方に問題があるのでしょうか。 「vbCrLf」はVBAの組み込み定数ですが、これはコントロールソースやマクロの式には 使えません。 ですので、「vbCrLf」の代わりに、Chr関数を使用して改行コードを入れてください。 (「Chr(13) & Chr(10)」で「vbCrLf」に相当します:順逆は不可) =IIf(IsNull([フィールドA]),"","フィールドA:" & [フィールドA] & Chr(13) & Chr(10)) & IIf(IsNull([フィールドB]),"","フィールドB:" & [フィールドB] & Chr(13) & Chr(10)) ~ ※個人的な趣味で、 IIF関数の条件式を「IsNull(~)」(「=True」省略)に変更&引数の順を反転 IIF関数の第2引数(=True時の値)を「Null」から「""」(空文字)に変更 させていただきました。
その他の回答 (1)
- mshr1962
- ベストアンサー率39% (7417/18945)
=IIf(IsNull([フィールドA])=False,”フィールド名A:” & [フィールドA] & VbCrLf,Null) & IIf(IsNull([フィールドB])=False,”フィールド名B:” & [フィールドB] & VbCrLf,Null) ~ のようにフィールドA~Cの後ろに& VbCrLf(改行コード)を追加してください
お礼
お返事ありがとうございます。 早速アドバイスいただいたように書き込んでレポートをセーブしたところ、条件文が=IIf(IsNull([フィールドA])=False,”フィールド名A:” & [フィールドA] & [VbCrLf],Null)のようにVbCrLfが自動的にカギ括弧で括られてしまい、存在しないフィールドとしてNGになってしまいます。 何か私の書き方に問題があるのでしょうか。
お礼
出来ました!ありがとうございました。条件式もご提案いただいた形のほうが短くてすっきりしますね。