#556 | サブフォームの集計値が取得できないときの#エラーの対処法 | フォーム | |
下図のフォームでは、サブフォームのフォームフッターで「税抜金額」・「消費税額」・「税込金額」をSum関数によって求めています。 ただしこのサブフォームはデータシート形式になっているため、フォームフッターの内容は実行時には画面に表示されません。そこで、そのコントロールの値をメインフォーム側で参照し、メインフォーム上に表示するようにしています。 メインフォーム側の3つのコントロール(画面右下)では、「コントロールソース」プロパティを次のように設定してあります。「frm売上明細_sub」がサブフォームのコントロール名で、サブフォーム内のコントロールを参照していることが分かります。
これを実行すると次のようになります。 通常はこれで問題ないのですが、サブフォームのコントロールソースとなっているクエリの作りや、フォームフッターの関数式などによっては、状況によって集計結果の値が「#エラー」という表示になってしまうことがあります。たとえば上記のフォームでは、サブフォームのデータが1件もないとそのような表示になります。 これは、その算式自体がエラーとなっていることを示しているもので、このような表示になる可能性があるときには、「エラーが発生しているかどうかをチェックして、エラーでなければその計算結果を表示し、エラーなら何も表示しない(Nullなどを表示する)」という算式を設定することで回避することができます。 具体的には、メインフォーム側の3つのコントロールの「コントロールソース」プロパティを次のように変更します。
ここでは、「IsError関数」でエラーかどうかの判定を行い、「IIf関数」でエラーかどうかに応じて分岐処理を行っています。 これを実行すると次のようになります。今度は「#エラー」は表示されず空欄(Null表示)となっています。 参考Tips:「#547 割り算の分母がゼロのとき#エラー表示を回避するには?」 |
|||
|
Copyright © T'sWare All rights reserved |