ACCESS SUMで#エラーが出る場合の対処法

ACCESSではフォーム上での集計値が正しく表示できない際に#エラーと表示されることがあります。
こういった表示が出た状態ではユーザーがびっくりしてしまいますね。
今回は、SUMで#エラーが出る場合の対処法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
集計フィールドでエラー
ACCESSのフォームで集計値を出したい場合に、下記のように#エラーと表示されてしまうことがあります。

この原因は、テーブルやクエリにある値ではなく、フォーム上で計算した値をもとに集計を行っていることです。
以下で詳しく見ていきましょう。
#エラーになる原因
先ほどのフォームをデザインビューで見てみましょう。

下段にある合計欄は
=[数量]*[金額]
となっており、数量と金額の掛け算をフォーム上で行っています。
さらに上段にある合計金額欄は
=Sum([合計])
としてあり、先ほど計算した合計欄を更にSum関数で集計しています。
このように、フォーム上で集計した値を更にSum関数で合計すると#エラーが出てしまうのです。
解決方法
この問題は、合計の計算をフォーム上で行うのではなく、フォームのレコードソースとなっているクエリ上で行うことで解決できます。
クエリをデザインビューで作成しましょう。

一番右の列に合計を追加します。
計算式は下記の通りです。
=合計:[数量]*[金額]
:(コロン)の左側にある「合計」がフィールド名で、右側にある計算式が表示する値になります。
クエリのデータシートビューで結果を見てみましょう。

このように、合計が表示されますね。
それでは、フォームのデザインビューに戻ります。
プロパティシートでフォーム全体を選択し、レコードソースを先ほど作成したクエリに変更します。

その上で、合計テキストボックスのコントロールソースを、先ほどクエリで作成した合計に変更します。

こうすることで、フォーム上での計算をなくし、クエリ上で計算した結果をフォームに表示する形に変更できました。
フォームをフォームビューで見てみましょう。

このように合計金額のエラーが解消され、正しく集計されるようになりました。
以上、SUMで#エラーが出る場合の対処法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に200以上のACCESSデータベースの開発・修正実績のあるはこにわガジェット(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

最後までお読みいただき、ありがとうございました。