久しぶりにAccessで悩んでしまったので、メモと共有ができるように明記しておきます。
何を悩んでしまったのかというとAccessのフォーム上で「Sum関数」を使ったところ「#エラー」と表示され悩んでしまいました。ここ最近、Accessを触っていなかったせいですかね?この手のエラーはよく出るので、それほど悩まずに解決できるのですが、今回は悩んでしまいました(^_^;)
今回の件について一応、条件を明記しておきます。
テーブルには数量の「Quantity」と単価の「Price」フィールドがあります(このほかにもありますが、関係ないので無視します)。
フォームはこのテーブルと連結していてレコードソースにこのテーブル名が入っています。
フォームは「帳票フォーム」で詳細セクションには数量(コントロール名:txtQuantity)と単価(コントロール名:txtPrice)のテキストボックスがあり、それ以外に数量と単価を掛け合わせた「金額」のテキストボックス(コントロール名:txtSubtotal)があります。
金額のコントロールソースには数量と単価を計算するために
=[Quantity]*[Price]
が入力されています。この金額のコントロールは正常に表示されます。
さて、フォーム上にはもう一つテキストボックスが有り、フォームフッターに金額の合計用のテキストボックスがあります。これは数量と単価を計算した「金額」の合計金額を表示するテキストボックスです。よくありますよね。けど、ここで「#エラー」が表示されてしまい苦戦しました。
さて、なぜエラーが表示されたのかですが、このコントロールのコントロールソースには
=Sum([txtSubtotal])
としていました。「txtSubtotal」は金額のコントロール名です。しかし、これではエラーになります。そこで、今度は
=Sum([txtQuantity]*[txtPrice])
数量と単価のコントロール名を入れて計算をさせましたが、これもエラー。ここからドツボにはまりNz関数やIif関数、IsEmpty関数などを使ってNullなどが何かしらの影響でエラーがでるのではないかといろいろやってみました。
で、結論ですが、結果的には下記方法で解決しました。
=Sum([Quantity]*[Price])
そうです。フィールド名を入れて計算させればあっけなく答えが出ます(^_^;)
先にも書いたとおり、久しぶりに触るとたいした所じゃない部分で時間をかけてしまうことが多々ありますね。はぁ~(´Д`)
2010/2007対応Access関数辞典 (Office2000 Dictionary Series) 本
価格¥2,829
順位789,842位
著日野間 佐登子
発行秀和システム
発売日2010/07/27
コメント