- ベストアンサー
アクセスでデータベースを作っているのですが
いつもお世話になります。 とっても基本的なことですが、データベースのテーブルの中のAとBとCのフィールドを集計してDのフィールドに記入したいのです。 A+B+Cという式を入れた選択クエリを作ってその集計をDに返すようにしたのですが、A,B,Cとも数値が入っていないと空白になります。テーブルの規定値には 0が入っているのでいいと思うのですが(汗) 多分ホントに簡単なことかと思うのですが、判りません(泣) よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
選択クエリーでは、Dの値は更新できません。 更新クエリーを使って更新します。 A,B,CのどれかがNullの場合は、Dに値が入らないので、 nz関数を使って、Nullの場合は0が入るようにします。 D=Nz(A,0)+Nz(B,0)+Nz(C,0)ですね。 自動的にDのフィールドを埋めたいのなら、フォーム等でA,B,Cの入力がされたときに、Dのフィールドを更新するコードを記述するのが常套手段です。 A,B,Cの更新後プロシージャに記述するか、ボタンコントロールを作り、ボタンのクリック時プロシージャに記述します。 単に、D=Nz(A,0)+Nz(B,0)+Nz(C,0) で終わりです。
その他の回答 (1)
- Gin_F
- ベストアンサー率63% (286/453)
> データベースのテーブルの中のAとBとCのフィールドを集計してDのフィールドに > 記入したいのです。 大前提というか、リレーショナルデータベースの一般的な考え方として。 ○計算で求めることができるものはテーブルに持たない ○集計等をする場合、横(フィールド)方向ではなく、行(レコード)方向に 展開するようにテーブル設計する なんてのがあります。 [ACC2000] データベースの正規化の基礎 http://support.microsoft.com/default.aspx?scid=kb;ja;209534 こういったことを考えずに、Excelの考え方で作成していくと、ドツボに はまることがほとんどですね。。(^^ゞ
お礼
有り難うございます。 前回の決算台帳をエクセルで作成していてそのデータをインポートして、そのデータをたたき台にしてデータベースを作っているのでいろんな矛盾が出てきてしまいます。 当分いろいろな(どつぼ)にはまるかと思いますので(汗)また、色々教えてください。 どうも有り難うございました。
お礼
有り難うございます。これで一つ問題が解決できそうです。早速記述してみます。 ホントに有り難うございました。