アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在MS-ACCESSを勉強中でデータベースを作成しようと思い
基本的な使い方を勉強して少しは分かったつもりなのですが
私の希望するデータべースを作るには
どの様にテーブルとクエリを作れば良いか分かりません。
作りたいデータは

顧客Xさん が 6月5日に クーポンAを使い
100,000万円を利用しました。
クーポンAを使った場合は 5%の割引がある。

上記条件にのっとりレポートを作る際に
Accessのフォーム機能を使い、
フォームに必要事項を打ち込めば
自動でクーポン割引を計算してくれた
データベースが作れる様にしたいのです。
また データーベースには
利用日、 氏名、 利用金額、 使用クーポンの種類、 クーポン割引後の金額
が出る様にしたいんです。

クーポンの種類は A~Z 迄あるとします。 また クーポンは
A~Z迄 それぞれ異なった割引があります。

この様なデータベースを作るためには、

どの様なテーブルを作り
どの様なクエリを作れば良いのでしょうか?

詳しい方いらっしゃればお教えください。


以前 Excelで上記のものを作りましたが
Accessでフォーム機能を使い、
フォームに必要事項を打ち込めば
自動でクーポン割引を計算してくれた
データベースが作れる様にしたいのです。

以上宜しくお願い致します。

A 回答 (3件)

顧客Xさん が 6月5日に クーポンAを使い


100,000万円を利用しました。

→ 発生事象となる項目です。これらのレコードを格納するテーブルを用意します。【WK_TBL_利用】


上記条件にのっとりレポートを作る際に
Accessのフォーム機能を使い、
フォームに必要事項を打ち込めば
自動でクーポン割引を計算してくれた
データベースが作れる様にしたいのです。

→ フォーム【FRM_明細入力】で入力、ボタンを押したときに【WK_TBL_利用】へレコードを格納します。
→ 同時にレポート【RPT_明細書】を出力させます。
→ 一連の動作をマクロ【M_印刷】とする。


また データーベースには
利用日、 氏名、 利用金額、 使用クーポンの種類、 クーポン割引後の金額
が出る様にしたいんです。

→【WK_TBL_利用】と【TBL_クーポン】から【TBL_利用】を作成(追加)します。

→ 利用金額×使用クーポンの種類に相当する割引率=クーポン割引後の金額
→ 使用クーポンの種類に相当する割引率は【TBL_クーポン】から取得する


クーポンの種類は A~Z 迄あるとします。 また クーポンは
A~Z迄 それぞれ異なった割引があります。

→ クーポンの種類、クーポン割引率、有効期間、の項目。【TBL_クーポン】とします。


【WK_TBL_利用】と【TBL_利用】は1つで考えても分けて考えても要求機能は可能です。
マスタを直接更新とするか、トランザクションからマスタ更新とするか、です。


【】仮名称

ざっと考えてみた案です。
まず、
テーブル設計から始めないといきなりクエリは思いつきませんというか、
どの機能をクエリで処理するかになってきます。
今回はクーポン毎の割引計算が相当します。
※クエリなく実行できる仕掛けもあります。

フォームに必要事項を打ち込めば
→フォームのレコードソースを【WK_TBL_利用】に
自動でクーポン割引を計算してくれた
→【WK_TBL_利用】と【TBL_クーポン】からの選択クエリに、計算式はクエリで行う

設計、実装部について疑問点あれば再度お願いします。

いろいろ案が出ると思うので、
使えそうなところを抜粋して統合してみるのも手です。
    • good
    • 0
この回答へのお礼

早速のご丁寧な回答をありがとうございます。
私は、私が思っていた以上にaccessの事が分かっていなかったみたいでした・・・。
お教え頂いた通りに作ってみましたが、どうやっても全てのクーポンの種類か金額がレポートに出てしまいます。
作成したテーブル:
TBL1
ID:オートナンバー
顧客名:テキスト型
利用日:日付/時刻型
クーポン種類:テキスト型
利用金額:数値型


TBL2
ID:オートナンバー
クーポン種類:テキスト型
割引率:数値型

クエリ1
クーポン種類(TBL2)
利用金額(TBL1)
割引率(TBL2)---2・・・・5%とかの数値です
入金額: [利用金額]*[割引率]

上記を使いレポートを出すと、入力した任意の数値に対して、選択したクーポンだけをレポートに出したいのですが、どうやっても全てのクーポンが一覧として出てしまいます。

恐らく私の考え方が間違っているだと思いますが、
→【WK_TBL_利用】と【TBL_クーポン】から【TBL_利用】を作成(追加)します。

→ 利用金額×使用クーポンの種類に相当する割引率=クーポン割引後の金額
→ 使用クーポンの種類に相当する割引率は【TBL_クーポン】から取得する



→ クーポンの種類、クーポン割引率、有効期間、の項目。【TBL_クーポン】とします

がよく理解できませんでした。

折角もの凄く丁寧な回答をくださったのに、すみません知識不足で。。。(>_<)

何か改善策や、良い参考書等あればお教え頂けると幸いです。
以上宜しくお願い致します。

お礼日時:2010/06/07 12:44

なるほど。



クエリで、
クーポン種類をテーブル1の値から出す、機能ができてません。Zまでの、テーブル2の件数が出てますね?。

クエリでクーポン種類項目同士を線で結んでますか?。

この回答への補足

あれから試行錯誤して大体できたのですが、どうしても 数値が 小数点以下20桁位出てしまいます。
実際は小数点以下は、四捨五入とか切り上げ・切捨て等をして整数のみ表示したいのですが出来ません。
何が悪いのでしょうか?
SQLです。
SELECT TBL_1.Card決済日, TBL_1.[顧客氏名(ENG)], TBL_1.[顧客氏名(カナ)], TBL_1.[Card Type], TBL_1.[Departure Date], TBL_1.Card利用金額, [Card利用金額]*[%率] AS 予定額, TBL_1.実質入金額, TBL_1.実質入金日, TBL_1.[Card名義人(ENG)], TBL_1.[Card名義人(カナ)], TBL_1.[GRP HEAD]
FROM TBL_1 INNER JOIN TBL_2 ON TBL_1.[Card Type] = TBL_2.[Card Type];

以上宜しくお願い致します。

補足日時:2010/06/17 17:27
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

情け無いのですが

クーポン種類をテーブル1の値から出す機能ができてません。

を出すクエリの作り方がわかりません。

TBL2の作り方が間違っているのは理解できました。
クーポン1種類ずつTBLを作ると言う事ですよね?
もしこれが正しいのであればクーポン種類同士は線で結ばれてます。

以上宜しくお願い致します。

お礼日時:2010/06/07 16:36

テーブル1には発生したレコードが格納されていて、


テーブル2にはクーポンの情報A~Zまでならレコード26件。
の想定でしたが、違うんですね?。

選択クエリです。
SELECT テーブル1.顧客, テーブル1.クーポン, テーブル2.割引
FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.クーポン = テーブル2.クーポン;
画像の状態。

線で結んだときのプロパティで、
テーブル1の全件と一致するテーブル2だけ出す、
クエリの下のテーブル欄に「テーブル1」となること。
こうにもなってないのでしょう。

クエリのデザインでSQL表示し
それを回答欄に記載していただければ・・・。
「現在MS-ACCESSを勉強中でデータベ」の回答画像3

この回答への補足

返答が遅くなり申し訳ございません。
頂きましたヒントを元に
あれから悪戦苦闘した結果、なんとなくつかめてきたよう気がします。
もう少しでプロット版が出来そうなので
それから再度連絡させて頂きたいと思います。
面倒だとは思いますが、もう少しだけお付き合い下さいませ。
ありがとうございます。
もう少しです・・・きっと・・・。

補足日時:2010/06/09 19:44
    • good
    • 0

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