質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

4955閲覧

Access レポート 数値計算の箇所で#エラー、#Size →IsError関数を利用

mnbwqz

総合スコア74

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2021/11/12 10:05

Accessでレポートとサブレポートを利用しています。
会議室名1ごとの備品金額の合計を出しています。
備品の無い会議室の場合、
※に「=[Reports]![レポートA]![サブレポートA].[Report]![備品合計]」
と指定すると「#エラー!」が表示されます。
「=Nz([Reports]![レポートA]![サブレポートA].[Report]![備品合計],0)」
に変更すると「#Size」となります。そこで、
「=IIf(IsError([Reports]![レポートA]![サブレポートA].[Report]![備品合計]),0,[Reports]![レポートA]![サブレポートA].[Report]![備品合計])」
とすると想定した通りに動きました。
しかし、記述がとても長くなり見づらいです。
表記を短くする方法や、より簡単に表現できる関数(Nz関数のような)は無いでしょうか。よろしくお願いします。

レポートA

会議室名1備品金額合計
A
B
C

サブレポートA
会議室名1でグループ化し、会議室名1それぞれで金額を合計する=テキストボックス「備品合計」に代入

会議室名1備品金額
A椅子10000
A5000
B椅子8000
B4000

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

メインレポートからサブレポートを参照するとき[Reports]![レポートA]![サブレポートA].[Report]![備品合計]としなくても、[サブレポートA]![備品合計]で参照できるので、

Access

1=IIf(IsError([サブレポートA]![備品合計]),0,[サブレポートA]![備品合計])

と少し簡単にできます。

あるいは、
=[サブレポートA]![備品合計]のテキストボックスを「可視: いいえ」「名前: 備品合計」として、別にテキストボックスを配置して、下記のように設定してもいいですね。

Access

1=IIf(IsError([備品合計]),0,[備品合計])

あとは、ユーザー定義関数を作成するぐらいかな。

標準モジュール

vba

1Public Function EZ(Value, ValueError) 2 If IsError(Value) Then 3 EZ = ValueError 4 Else 5 EZ = Value 6 End If 7End Function

メインレポートのテキストボックスのコントロールソース

Access

1=EZ([サブレポートA]![備品合計],0)

投稿2021/11/12 12:39

編集2021/11/12 13:03
hatena19

総合スコア33795

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mnbwqz

2021/11/13 02:39

ご回答ありがとうございます。 1番目の案、大幅に短くすることができました。 [Reports]![レポートA]! .[Report] 省略できるのですね。 Meでうまくいかず困っていました。 フォームとサブフォームの時にも参考にします。 2番目の案、サブレポートを利用しない場合と同じくらいに 短くできますね。サブレポート名やテキスト名が長くなる場合、 条件式が複雑になる場合に利用しようと思います。 3番目の案、関数はこういう場合に使うことができるのですね。 参考になります。引数や戻り値の設定の仕方も今後必要な時に 利用させていただきます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問