プロが教えるわが家の防犯対策術!

Accessでクエリの作成、多対1対多ができるか教えてください。
データベースもAccessも初心者で、初級者用のテキストを見ながら作業しています。
職場で使用するデータベースです。
仕事は顧客からプロジェクトを請け負い、それに対し発生する費用の管理をしています。
プロジェクトは長期にわたるので、顧客に対する請求は時期が違う複数回になります。また、外注しモニターすることもあるので、外注先への支払いも発生します。
リレーションは受注番号でしています。
請求(多)←基本(1)→支払(多)
作りたいリストは年度に終了したものについて、請求額と支払額を合計した一覧表です。
つまり、
(番号)(プロジェクト名)(終了日)(請求額の合計)(支払額の合計)
単純にクエリデザインからフィールドを選び、日付を指定し請求・支払共グループ化で合計しましたが上手くいきません。
請求・支払のテーブルからグループ化したクエリを作り"つまり番号に対し一つのレコードにしました"、基本のテーブルとクエリを作って見ましたが、それも上手くいきません。
デザインの画面からでは上記のクエリを作るのは無理なんでしょうか。
よろしくご指導いただきますようお願いします。

A 回答 (2件)

こんばんは。



ユニオン、サブクエリは非常に便利ですけども、重たくて、Accessにはやや不向きです。
どうしても、というときやむを得ずに使う感じです。
その代わりAccessには便利な関数が充実しているので、それを使いこなしていった方が軽いし、無難です。

今回は、DSumという関数を使えば行けると思うので、ちょっと調べてみてください。
請求ないし、支払いテーブルの金額欄から、抽出条件(受注番号)を指定して、合計を取得できます。
    • good
    • 1
この回答へのお礼

ご連絡ありがとうございます。
Accessは式とかVBAなど知らなくても作業できるので、つい勉強するのを怠っていました。関数なども毛嫌いせずに勉強した方が良いですね。
今回の問題は、実は解決しました。3つのテーブルからそれぞれのクエリを作り、3つのクエリを結合したクエリを作るのが上手くいかなかったのですが、デザイングリッドを眺めていたらリレーションの線がないのに気がつき、リレーションを設定した所正確な数字を返してくれました。リレーションはテーブル同士で結んでおけばクエリを作ったとしてもずっと機能してくれると思っていたのが間違いでした。
きちんと勉強したことがないので、上手くいかないとSQLが理解できないからと逃げがちでしたが、基本的なことだけでも結構仕事ができるよくできたアプリケーションだと思いました。

お礼日時:2017/05/19 21:21

基本のテーブルを T_基本:フィールドを[受注番号]、[プロジェクト名]、[終了日]・・・同じ受注番号は1つ


請求のテーブルを T_請求:フィールドを[受注番号]、[請求額]・・・・同じ受注番号が複数ある
支払のテーブルを T_支払:フィールドを[受注番号]、[支払額]・・・・同じ受注番号が複数ある
とすると、

クエリAでT_基本の「終了日」をキーにして「受注番号」を抽出します。
クエリBで「クエリA」と「T_請求」、「T_支払」を受注番号で連結して集計クエリにし、
受注番号はグループ、請求額と支払額は合計にしたらできないでしょうか?
    • good
    • 0
この回答へのお礼

お忙しい所アドバイスいただきありがとうございました。
早速試してみましたが、残念ながら上手くいきませんでした。
もしかするとサブクエリ?と思いましたがSQLはまだ使ったことがなく…
悪あがきで、請求と支払をユニオンで1つにして基本とクエリを作ったみようかと作業中です。
Accessは奥が深いです…

お礼日時:2017/05/19 12:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!