• ベストアンサー

アクセスでデータベースを作っているのですが

いつもお世話になります。 とっても基本的なことですが、データベースのテーブルの中のAとBとCのフィールドを集計してDのフィールドに記入したいのです。  A+B+Cという式を入れた選択クエリを作ってその集計をDに返すようにしたのですが、A,B,Cとも数値が入っていないと空白になります。テーブルの規定値には 0が入っているのでいいと思うのですが(汗) 多分ホントに簡単なことかと思うのですが、判りません(泣) よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Dr_Smith
  • ベストアンサー率30% (3/10)
回答No.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) で終わりです。

mai9999
質問者

お礼

有り難うございます。これで一つ問題が解決できそうです。早速記述してみます。 ホントに有り難うございました。

その他の回答 (1)

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

> データベースのテーブルの中のAとBとCのフィールドを集計してDのフィールドに > 記入したいのです。 大前提というか、リレーショナルデータベースの一般的な考え方として。 ○計算で求めることができるものはテーブルに持たない ○集計等をする場合、横(フィールド)方向ではなく、行(レコード)方向に  展開するようにテーブル設計する なんてのがあります。 [ACC2000] データベースの正規化の基礎 http://support.microsoft.com/default.aspx?scid=kb;ja;209534 こういったことを考えずに、Excelの考え方で作成していくと、ドツボに はまることがほとんどですね。。(^^ゞ

mai9999
質問者

お礼

有り難うございます。 前回の決算台帳をエクセルで作成していてそのデータをインポートして、そのデータをたたき台にしてデータベースを作っているのでいろんな矛盾が出てきてしまいます。  当分いろいろな(どつぼ)にはまるかと思いますので(汗)また、色々教えてください。 どうも有り難うございました。

関連するQ&A