• 締切済み

テーブル設計(複数の通貨がある場合のフィールド設定)

ACCESSで販売管理&帳票作成システムを作りたいと考えています。 輸出入がメインなので、円建、ドル建、ユーロ建、ポンド建の取引があります。 この場合、テーブルの金額フィールドをどのようにすればよいのか迷っています。 以下に、通貨は円とドルの2種類に限定して簡単な例で説明します。 A)金額フィールドは一つだけ設ける 通貨種類フィールド、金額フィールド1つを設ける。 この場合、金額フィールドには円貨額、ドル価額が混在することになり、単純な合計に意味はない。 しかし、通貨種類フィールドを抽出条件にすることで円建、ドル建を抽出することができる。 B)円建金額、ドル建金額のフィールドを別個に設ける この場合、円取引の場合はドル建金額フィールドはNullになる。 逆にドル取引の場合、円建金額フィールドはNull。 テーブルの設計は、具体的にどのようなシステムを組むかに依存し、一概に結論付けることは難しいとは思いますが、一般論として上記のような事情の場合、金額フィールドは1つだけ設けるのか、あるいは通貨の数だけ設けるのか、どちらがスマートになるでしょうか? 宜しくお願いします。

noname#108362
noname#108362

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

取引時の通貨コード、金額と決済時の通貨コード、金額の両方が 必要なのでは? 私は証券取引の経験しかないのですが、値洗いは当日のレートで ドル換算でやってました。勿論、テーブルに記録するのではなく、 SQLで動的計算結果を出力するのですが・・・ 決済すると、損益が確定する(その後変動しない)ので、テーブルに 記録しても良いでしょう。 尚、通貨別に複数フィールドを設ける方法は薦められません。

関連するQ&A

  • アクセス2010 テーブルのフィールドの式について

    アクセス初心者ですが宜しくお願いします。 テーブルに『商品』 『販売金額』 『販売金額のカウント』というフィールドがあり、その中の『販売金額のカウント』というフィールドの集計について悩んでいます。 販売金額のカウントは、販売金額のフィールドの値が、0以上なら1を、0以下なら-1を(販売した商品がキャンセルになった場合に-で入力します。)、NULLの場合は0を返すようにしたいのですが、 IIf([販売金額]>0,1,-1) の式で、0以上なら1を、0以下なら-1を返すまではなんとかできたのですが、そこにNULLの場合に0を返す式を組み込むことができずにいます。 初心者レベルの質問かもしれませんが、何卒宜しくお願いします。

  • 複数テーブルをひとつのテーブルにしたいのですが

    教えてください。 得意先マスタ・仕入先マスタ・納入先マスタの3種類のテーブルを、ひとつのテーブルとしてまとめたいのですが、ACCESSにて行う場合、どのようにしたらいいでしょうか?各テーブル共、フィールドの桁数は同じなので、まとめられると思うのですが。。。宜しくお願いします。

  • Access2000のテーブルのフィールドについて

    Accessのテーブル設計で困っています。 担当者マスターテーブルに担当者CD(主キー)と担当者名のフィールドが入っています。取引先マスターテーブルには取引先CD、取引先名、担当者を2名いれたいのですが、どのようにしたらいいかわかりません。ひとつの取引先に2名の担当者がいる場合どのように管理をしたらいいでしょうか。1つの取引先に対し、1名の担当者だったら、担当者CDをいれクエリで出すことが出来るのですが、2名となるとどうなのでしょう? どなたかご教示ください!よろしくお願いいたします。

  • NULL値を含む場合のフィルタ

    アクセスです。 テーブルに フィールド1 フィールド2 A    B       B  C       C と入ってるとします。 フィールド2についてはNULL値のレコードもあれば、 値が入ってる場合もあります。 このテーブルをフォームにひもづけていて、(帳票フォームにしています) フォームヘッダーにテキストボックス2つとコマンドボタンがあり Private Sub コマンド_Click() Me.Form.Filter = _ "フィールド1 like '*" & Me.テキスト_1.Value & "*'" & " and " _ & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" Me.Form.FilterOn = True End Sub としたときに、レコードのフィールド2に文字が入ってる場合は、抽出できるのですが、 フィールド2がNULLの場合は、1件もヒットしません。 テキスト_1にはAを入れて テキスト_2には何も入れないで検索してみると、1件もヒットしませんが、 テキスト_1にBを入れて検索すると、Bのレコードが抽出されます。 もちろん テキスト_1もテキスト_2もBをいれても、Bのレコードが抽出されます。 VBAコードで & "フィールド2 like '*" & Me.テキスト_2.Value & "*'" としてるので、NULL値でも抽出されると思ったのですがなぜ何も抽出されないのでしょうか? ワイルドカードでnull値も検索されないのでしょうか? テーブルのフィールド2のデータをNull値ではなく、””にしたら、問題なく抽出されましたが データのNull値はNull値のままにして、空白などの文字には置き換えたくないです。 (というか、すべてのNULL値に空白を入れる作業が大変なのでやりたくないです。 実際のフィールド数は50個くらいあります) よろしくお願いします。

  • 同じフィールドから複数条件のAND条件で抽出する方法

    お世話になります。 同じフィールドから複数条件のAND条件で抽出する方法 DBはAccessです。 フィールド1がA フィールド2がBという条件でしたら Select 抽出フィールド form テーブル where フィールド1=A and フィールド2=B で行っています。 フィールド1がAまたはBでしたら Select 抽出フィールド form テーブル where フィールド1=A or フィールド1=B で行っています。 それではフィールド1がAもBも満たす抽出はどのようにしたら良いのでしょうか。 例: 学生テーブル  フィールド 学生ID、氏名 履修科目テーブル  フィールド 学生ID、同一学生内連番、科目 というテーブル構成で英語、国語のどちらも履修している学生を抽出する場合などです。 2テーブルをリンクしたクエリを作ったのですが、 単にフィールド 学生ID、氏名、同一学生内連番、科目 なのでどちらも履修している学生を抽出できませんでした。 どのようにしたらよろしいのでしょうか。よろしくお願いいたします。

  • Access 複数テーブルのリレーションシップ

    Access2013  4種類の名簿をそれぞれのテーブル(4種類)で管理してありますが、 同じ方(氏名)が4種類の名簿全部には無く、2つや3つの名簿にばらばらにあります。  この4つのテーブルを同時に表示し入力できる分割フォームをつくりたいのですが、 この際の、4つテーブルの氏名をリレーションシップする結合プロパティの設定方法を教えて下さい。 あるいは、クエリのそれぞれのテーブルのフィールド(氏名)の抽出条件になんと書き入れたらよいか。教えて下さい。 宜しくお願いします

  • Accessで3つのテーブルの結合とフィールドについて教えてください。

    Access2003を使用しています。 「取引先マスタ」テーブルに契約の情報ものせることにしました。 契約は今のところ2種類ありますが、3種類になる可能性もありそうなので、応用が利くようにサブフォームにしました。http://questionbox.msn.co.jp/qa3473958.html 契約内容では弊社の誰が担当したのかわかるようにしたいです。 けれど担当者は新たにフィールドを設けずに、担当者マスタのテーブルから引っ張ってきたほうが良いのかなと思いました。 とすると、契約のテーブルには担当者IDだけでも加えないと結合できないなと思いました。 質問1.この考え方であっているでしょうか? 各テーブルは下記のようになっています。 質問2.T取引先マスタとT担当者マスタに「担当者」という同名のフィールドがありますが、意味合いは違います。これは「取引先担当者」と「弊社担当者」と名前を分けたほうがよいのでしょうか? 一緒でもなんとかいけるものでしょうか? テーブルの正規化いうものがしっかりと理解できていないので正しいのかどうがわかりかねています。 この3つのテーブルを結合させて、フォームとレポートを作りたいのです。 そして、契約締結済みと未締結との取引先に抽出わけをしたいのです・・・が、ここでつまずいてしまって困っております。 お手数をおかけして申し訳ないのですが、どなたかご教示ください。 よろしくお願いいたします。 T取引先マスタ  ID  取引先ID  取引先名  フリガナ   部署名   担当者名・・・・・・取引先の担当者名  郵便番号  都道府県  住所1  住所2  電話番号  FAX番号  URL  電子メール  備考   T取引先_契約内容  ID  取引先ID  契約種別・・・・・・基本と業務委託がある  契約締結日  契約終了日  契約者役職  取引先契約者名  担当者ID・・・・・・弊社の担当者を判別するもの。T担当者ますたと結合する。 T担当者  担当者ID  並べ替え  担当者名  フリガナ  備考  

  • Access 複数フィールドにまたがる抽出条件

    Access2016で、クエリの抽出条件の設定に悩んでいます。解決策をご存知の方はご教示いただきますようお願い致します。 ★やりたいこと★ 【テーブル1】に以下のようなフィールドがあります。 [フィールドA] "製品a" "製品b" "製品c ..." のようなデータ群 [フィールドB] "00 "01" の2種類のデータ群 [フィールドC] "98" "99" の2種類のデータ群 フィールドBが "00" で、かつフィールドCが "98" に該当するデータのみを除外する抽出条件を設定したい。 ※フィールドBが "00" でフィールドCが "99" のようなデータは除外したくない SQLとかは使わず、初心者でも後から解読・編集できるような方法があればありがたいです。

  • テーブル同士で持っている同一フィールドの計算(条件つき)

    こんばんは。金曜日は大変お世話になりまして有難うございました!勤務中にどうしても解決しなくてはならなかったので本当に助かりました<(_ _)> そして現在ですが、新たに下記の問題に直面しております。お手すきの時で構いませんので、どうぞご教授をお願い致します。 【存在しているテーブル】 A.立替金テーブル(a/b/c/d/e)←フィールド数5 B.預り金テーブル(a/b/c/d/e)←フィールド数5 【やりたい事】 1)A.とB.のテーブルそれぞれで持っているb(商品名)とe(金額)のフィールドを比較し、両方のフィールドが一致したレコードのみ、立替金テーブルから引っ張って表示する。 2)A.とB.のテーブルそれぞれで持っているb(商品名)とe(金額)のフィールドを比較し、両方のフィールドが不一致したレコードに関しては計算が必要。 パターンは「立替金テーブルで持っているb(商品名)のe(金額)数字が、預り金のe(金額)数字とは異なる」というものです。 この場合、やりたいことは、下記の通りです。 それぞれのテーブルでb(商品名)が同じもの同士、e(金額)を加算し、立替金テーブルのeから、預り金テーブルのeをマイナスし、立替金テーブルから該当するレコードを引っ張り、最後にfフィールド(計算結果の数字を入れるフィールド)を新規に作成、付け足しをしてファイル出力したい。 SQLの記述で構いませんので、どうぞ宜しくお願い致します。 PS:ごめんなさい…。あれこれやっていて疲れてしまって説明が、更に頭の回転が鈍くて、うまく出来ていないかも…。

  • アクセス2003 テーブルの設計について

    工事管理システムを作成しています。 月ごとの担当者ごとの今月売上金額や今月粗利金額を手入力で テーブルに保存(格納)しておきたいのですが、テーブルの設計が分からず困っています。。 ■今月販売テーブル [フィールド名] 年月 担当者名 今月売上金額 今月粗利金額 年月には[2013/10][2013/11]・・・と年月を入力して準備しています。 複数の担当者がいるために担当者名を入力して準備すると [2013/10 田中][2013/10 山田]・・・・とひと月×担当者の人数が必要になります。 また、担当者が増えた場合に手間が発生してしまいます。 元々の考え方が間違っていると思いますので、アドバイスをいただけたらありがたいです。 「今月販売」フォームで入力したい年月と担当者名を選択して入力出来ないかと考えています。