どのくらい説明すればいいのかわからないのですが、アクセス2000でリレーションシップの設定をするときに、
「主テーブルで参照されているフィールド用の固有インデックスがありません。」
というエラーメッセージが出てきてリレーションを作る事が出来ません。
問題なのは3つのテーブルのリレーションなのですが、それぞれのインデックスをチェックすればいいのだとは思いますが、対象となったフィールドは主キーではないので、重複は許可していますが、一応どちらもインデックスは作成しています。

どのようなリレーションシップかというと、業者テーブルと商品テーブルと販売履歴テーブルのリレーションで、
商品テーブルの業者IDと業者テーブルのIDのリレーション→左内部結合(商品テーブルの全フィールドに入れる)
業者テーブルの業者IDと販売履歴の業者IDのリレーション→右内部結合
は出来るのですが、商品テーブルの商品名と値段フィールドと、販売履歴の対応する部分についてのリレーションについてもたせようとするとエラーが出てしまいます。このようなリレーションはいらないのでしょうか?
どちらも固有の値でない量のリレーションだからなのでしょうか?
この二つのフィールドの参照整合性をどう保てばいいのか教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

お書きになったことを誤解しているかもしれませんが、


・商品テーブル
 商品ID
 価格
・販売履歴テーブル
 商品ID
 価格
があって、価格同士のリレーションが出来ない、ってことでしょうか?

もしそうなら、ダメです。出来ない。ってのが答えです。
商品テーブルの価格を、販売履歴テーブルの価格に転記する処理については、販売履歴の入力用フォームを作って、そこで処理をしてやる必要があります。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qアクセス 正味の算出 フィールド1 オートID フィールド2 顧客No フィールド3 商品名 フィー

アクセス 正味の算出

フィールド1 オートID
フィールド2 顧客No
フィールド3 商品名
フィールド4 単価

このようなテーブル構成で、顧客Noでグループ化して、IDのカウントした結果が1、2となります。
その際、1の場合は1、2の場合は0.5と別フィールドに記載する方法を教えて下さい。

Aベストアンサー

>本当はIDのカウントが2以下なら1を3以上なら999(数値で0、1以外なら何でも良いです)

IIf([IDのカウントした結果のフィールド名]>=3,999,1)

Qアクセス 各テーブルでのフィールドの持ち方と、参照整合性リレーションのつなぎ方

お世話になります。

アクセスでテーブルを作っています。
後で参照整合性のリレーションで結ぶ予定のフィールドなんですが、
同じフィールドを、複数のテーブルに持つ必要があるか悩んでいます。
意味わかりにくくてすみません。

例えば、「○○事業部の、○○部署の、○○社員」という識別をする場合、
◆「事業部」テーブルのフィールド:「事業部コード」
◆「部署」テーブルのフィールド:「部署コード」「事業部コード」
◆「社員」テーブルのフィールド:「社員コード」「部署コード」 *「事業部コード」
を作ります。

★この場合、「社員」テーブルの *「事業部コード」フィールドは必要か否かと、その理由(影響など)を知りたいのです!

「事業部」テーブルと「部署」テーブルの「事業部コード」、
「部署」テーブルと「社員」テーブルの「部署コード」は、
それぞれリレーションシップ(参照整合性)で結ぶ予定です。

★「事業部」テーブルと「社員」テーブルの「事業部コード」も、リレーションで結ぶ必要があるのでしょうか?

よろしくお願いします。

お世話になります。

アクセスでテーブルを作っています。
後で参照整合性のリレーションで結ぶ予定のフィールドなんですが、
同じフィールドを、複数のテーブルに持つ必要があるか悩んでいます。
意味わかりにくくてすみません。

例えば、「○○事業部の、○○部署の、○○社員」という識別をする場合、
◆「事業部」テーブルのフィールド:「事業部コード」
◆「部署」テーブルのフィールド:「部署コード」「事業部コード」
◆「社員」テーブルのフィールド:「社員コード」「部署コード」 *「事業部コード...続きを読む

Aベストアンサー

>★この場合、「社員」テーブルの *「事業部コード」フィールドは必要か否かと、その理由(影響など)を知りたいのです!

不要です。
社員テーブルの部署コードで、部署マスタを参照すれば事業部コードは
取得できます。

設ける事の弊害
部署マスタの事業部コードに変更があった場合、部署マスタのみならず
社員テーブルの、事業部コードまで変更する必要が出てきます。

>★「事業部」テーブルと「社員」テーブルの「事業部コード」も、リレーションで結ぶ必要があるのでしょうか?

社員マスタには、事業部コードは不要なので、問題とならないです。

Qaccessリレーションシップ 1つのフィールド対2つのフィールド

困っているので質問します。
テーブルAのフィールドをテーブルBのフィールドとリレーションシップを結ぶ時、テーブルAの1つのフィールドをテーブルBの2つのフィールドにリレーションシップを張ろうとするとできません。

例)テーブルA=元号テーブル
        元号テーブルには元号CDと元号の2つのフィールドがあります。
  テーブルB=管理テーブル

管理テーブルには作成年月日と更新年月日という2つのフィールドがあって、それぞれに元号テーブルにある元号というフィールドを元号CDを使って引っ張ってきたいのです。

どのようにすればよいのか教えてください。

Aベストアンサー

リレーションシップを結びたいフィールドの数だけ
テーブルの追加が必要です。

今回の場合は作成年月日と更新年月日なので、
もうひとつテーブルBを追加してください。

クエリのデザインビューにて
右クリック→テーブルの表示、で追加できます。

QAccess、同じテーブルの2つの項目対他のテーブルで1つの項目のリレーションは可能?

Accessで販売管理をしています。
以下のテーブルを作成し(*は主キーです)、

[売上T]  [商品M]  [顧客M]  [受注T]
*売上NO  *商品ID  *顧客ID1  *受注NO
商品ID   商品名    *顧客ID2  商品ID
日付    顧客ID1     顧客名    受注日
金額    顧客ID2            受注金額
       受注先1
       受注先2

参照整合性にチェックを入れリレーションでつないでいます。
リレーションシップは下記のとおりです。

[売上T]商品ID―[商品M]商品ID―[受注T]商品ID
[商品M]顧客ID1及び2―[顧客M]顧客ID1及び2―[商品M]受注先1及び2

ここで顧客と受注先が重複することもあるので、顧客Mから顧客ID及び受注先IDの2つのテーブルにリレーションシップを設定しているのですが、
クエリで  [受注T]受注NO及び受注金額、[顧客M]顧客名で抽出したところ、
5000件以上[受注T]にデータがあるはずのものが、1200件ほどしか抽出できませんでした。

ちなみに[顧客M]と[受注用顧客M]というまったく別のテーブルを作成し、
[商品M]受注先1及び2―[受注用顧客M]顧客ID1及び2
とリレーションを作成し、クエリで抽出するとうまくいきました。
しかしこの方法だと、[顧客M]と[受注用顧客M]という2つのテーブルを管理しなければならなくなるので面倒です。


そこで質問です。
同じテーブルの2つの項目対他のテーブルの1つの項目とでは、うまくリレーションが設定できないのでしょうか。

もし出来ない場合、[顧客M]と[受注用顧客M]の2つのテーブルを管理しなければならない訳ですが、
なんとか簡単に管理できる方法(ひとつのテーブルを変更すると簡単にもうひとつが変更できる設定)はないでしょうか。

非常にわかりにくく長い文章で申し訳ありません。
VBA等はさっぱりわかりませんので、普通の設定の範囲内で、できるかどうかよろしくお願いします。

Accessで販売管理をしています。
以下のテーブルを作成し(*は主キーです)、

[売上T]  [商品M]  [顧客M]  [受注T]
*売上NO  *商品ID  *顧客ID1  *受注NO
商品ID   商品名    *顧客ID2  商品ID
日付    顧客ID1     顧客名    受注日
金額    顧客ID2            受注金額
       受注先1
       受注先2

参照整合性にチェックを入れリレーションでつないでいます。
リレーションシップは下記のとおりです。

[売上T]商品ID―[商品M]商品ID―[...続きを読む

Aベストアンサー

リレーションシップとクエリでの結合を混同していますね

>ちなみに[顧客M]と[受注用顧客M]というまったく別のテーブルを作成し
>[商品M]受注先1及び2―[受注用顧客M]顧客ID1及び2
>とリレーションを作成し、クエリで抽出するとうまくいきました。
クエリでこのように結合すればいいだけですから、[受注用顧客M]など作らず
クエリデザインビューに顧客Mを2度ドロップすればいいのです

Qアクセス-テーブルの複数のフィールド名をあたらしいフィールドの項目にしたい

初めて質問させていただきます。


現在、アクセスで次のような表を作っています。

年度 地域 品名 4月 5月 6月 7月・・・
2001 日本 米  100 60  85 76 ・・・
2002 日本 米  150 45 95 98 ・・・
2001 中国 餃子 678 234 983 876・・・

(※一番上の行はフィールド名です。)

このテーブルを

年度 地域 品名 月  量
2001 日本 米  4月 100
2001 日本 米  5月 60
2001 日本 米  6月 85
2001 日本 米  7月 76
・・ ・・ ・・ ・・ ・・

のように、まとめなおせないでしょうか?

データの入力は上の表の様式で行い、自動的に下の
表が生成できるようにしたいと考えています。

上の表は、レポートで使用するために保存しておき、
また、別形式のレポートを出力するためにこのような
変換を行ないたいと思っています。
よろしくお願いします。

Aベストアンサー

逆ならクロス集計クエリがあるのですけどね...
一度エクセルにデータをエクスポート(Sheet1)
でSheet2上で
A2=OFFSET(Sheet1!A$2,INT((ROW()-2)/12),0)+IF(LEFT(D2,LEN(D2)-1)*1<4,1,0)
C2=OFFSET(Sheet1!B$2,INT((ROW()-2)/12),0)
D2=OFFSET(Sheet1!C$2,INT((ROW()-2)/12),0)
E2=OFFSET(Sheet1!$D$1,0,MOD(ROW()-2,12))
F2=OFFSET(Sheet1!D$2,INT((ROW()-2)/12),MOD(ROW()-2,12))
このSheet2をインポート

※A列は後半に1月~3月が有るので年度を年に変更が必要だと思いましたので+1する設定を付けています。


人気Q&Aランキング

おすすめ情報