• ベストアンサー

Access 重複する値を制限したい

いつもお世話になっています。 [学年][クラス][出席番号]のフィールドを作成したテーブルがあります。 [学年][クラス]は大きな分類なのでまず間違えないのですが [出席番号]が重複して入っていることがしばしばあります。 テーブルのインデックスで「はい(重複なし)」にしてしまうと ひとつのクラスの出席番号しか入らなくなります。 簡単なようで煮詰まっています。 お力添えよろしくお願いいたします。

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

  • ベストアンサー
  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.1

(1)テーブルをデザインビューで開く (2)[学年][クラス][出席番号]をShiftを押しながら左クリックして複数選択状態にする (3)選択状態で右クリック⇒[主キー] で重複しないようにならないでしょうか?

suzupen
質問者

お礼

早々に回答いただきありがとうございます。 こちらの説明が不足しており、テーブル構造上、この3つを主キーに設定することができません。 今回はフォームを工夫して回避しましたが、別の機会にこの方法を使ってみたいと思います。 どうぞまたよろしくお願いいたします。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

複数フィールドでインデックスを作成してください Access2003まではテーブルのデザインビューで メニューの表示→インデックスからです。 http://www.officepro.jp/access/table/index13.html

suzupen
質問者

お礼

早々に回答いただきありがとうございます。 せっかく教えていただいた方法ですが、こちらの説明不足で作業していたテーブルでは無理でした。 結局今回はフォームを工夫して回避しましたが、インデックスについて知りたいと思っていたので 大変勉強になりました。 どうぞまたよろしくお願いいたします。

関連するQ&A

  • アクセス97で重複データのときに

    アクセス97で、テーブルにデータを入力する時にそのフィールドで値が重複していた場合、メッセージを出すやり方を教えてください。 インデックスで重複なしにはできません。 (重複する場合もあるのです。ただし、確認のためメッセージだけは出したいのです。) よろしくお願い致します。

  • ACCESS2007 重複について

    ACCESS2007を使用してます。 下記のように、IDコードのフィールドがあり、このコードに対して、重複しているデータ全てにフラグ1をたてたいのです。 <現在のテーブル> IDコード  ――――――+ 12345  12345  12378  12378  23457  23489  23456  <作成したいテーブル> IDコード 重複フラグ ――――――+――――――――+ 12345 1 12345 1 12378 1 12378 1 23457  23489  23456  重複フラグのフィールドは、現在のテーブルにありません。 どのようなクエリやSQLを作成すればいいでしょうか? よろしくお願い致します。

  • ACCESS2000の主キー重複について

    いつもお世話になっています。 早速ですが、お教えください テーブル名:AMaster フィールド名:B があります。 「B」は主キーになっていまして、ユーザーが任意に数字をいれることになります。 主キーになっていますので基本的には重複しないのですがユーザーの押し間違いなどによって重複してしまった場合 [Microsoft][ODBC Microsoft Access Driver] インデックス、主キー、またはリレーションシップで値が重複しているので、テーブルを変更できませんでした。重複する値のあるフィールドの値を変更するか、インデックスを削除してください。または重複する値を使用できるように再定義してください。 といったエラーメッセージが出ます。これは出ても構わないのですがツールバーの「戻る」でしか今後の操作ができなくなってしまうので(ユーザーはPC超初心者)何らかの形でエラーメッセージとともに任意のページへ戻れるようにしたいと考えています。 つきましては、「B」フィールドにあるデータとこれから入力される数値が重複していたら・・・という記述をお教えいただきたいと思います。 ASPにて作成していますのでそれに対応した記述ですとありがたいです。 過去のログに似たようなものがありましたがこちらを参照してもボクにはわかりませんでした。 http://okweb.jp/kotaeru.php3?q=357614 ボクも何分初心者なのでわからないことだらけですがよろしくお願いします。

  • 2つのテーブルで重複する値のレコードを削除したい

    削除クエリ?重複クエリ?について教えてください。 テーブル1 フィールド"番号"には 1 2 3 テーブル2 フィールド"番号"には 3 4 5 があるとします。 「テーブル2と重複しているテーブル1のレコードを削除する」 (この場合「3」が重複しているのでテーブル1の3が入力されているレコードを削除) としたいのですがどいゆうSQL文を書けばいいのかわかりません。 ご教授よろしくお願いします。

  • Access2000で重複データに・・・

    Access2000の重複データの処理について質問です。 あるフィールドの重複レコードを検索し、該当するレコードの別フィールドに「●」をつけようとしています。ただ、重複する最初のレコードには「●」をつけたくないのです。 例えば  aaa ・・・ (1)  bbb  aaa ・・・ (2)  ccc  aaa ・・・ (3)  eee というフィールドだった場合、(1)には「●」をつけずに(2)以降にのみつけたいのです。 重複クエリで重複レコードを抽出して重複テーブル作成→重複テーブルと元テーブルを組み合わせて更新クエリ作成という方法でやったのですが、そうすると(1)にも「●」がついてきます。(当然ですが・・・) 何か名案があれば教えてください。 やはり、VBAを使わないと無理でしょうか・・・?

  • ACCESS 重複データ削除の順番について

    追加クエリを使って重複データを削除する時に、削除されるデータについて質問です。 重複レコードを含むテーブルの構造のコピーを作成し、重複レコードを含むすべてのフィールドの主キーを作成して、元のテーブルから新しいテーブルへの追加クエリを実行して、重複レコードを一括削除をしています。 [操作についての参考URL] http://support.microsoft.com/kb/879852/ja =========================================== (テーブル) [ID]  [クラス]  [名前]   [時間]     1     A     ああ   11:00 ←重複 2     B     鈴木   12:00    3     C     アア   13:00     ←重複  4     A     ああ   14:00 ←重複 5     B     森    15:00   6     C     アア   16:00     ←重複  7     B     青山   17:00   8     C     アア   18:00     ←重複     9     A     ああ   19:00 ←重複 =========================================== 上記のようなテーブルで「クラス」と「名前」の2つのフィールドを主キーにした場合、 「A」の「ああ」さんと、「C」の「アア」さんが各3件ずつ重複しています。 しかし、「ID」と「時間」はそれぞれ違っています。 このような場合に、削除されないデータと削除されるデータの違いは何なのでしょうか? ACCESSの仕様でとか、レコードの若い番号順で削除されるとか、明確なルールが あれば教えていただけると幸いでございます。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • Accessでのクエリ作成について

    下の2つのようなテーブルからクエリを作成しています。 (1)データマスタ(テーブル) 出席番号   入力日  入力時間  国語  算数  社会 001        6/4    14:00    2     3    2 001        6/4    14:00    2     3    2 002        6/4    15:00    3     2    1 002        6/4    15:00    3     2    1 003        6/4    16:00    4     2    0 003        6/4    16:00    4     2    0 003        6/4    17:00    0     0    2 003        6/4    17:00    0     0    2 (2)クラスマスタ(テーブル) 出席番号   学年   組 001        1    2 002        1    3 003        2    1 クエリを作成して、抽出したいデータ 1)重複したデータを非表示にしたい *レコード削除はしたくない 2)〔合計〕というフィールドを作って(国語+算数+社会)の和を表示したい 3)出席番号003のように、一日に複数回データ入力している者がいるので その者のデータは一行で和を表示させたい 4)001と002は1年生なので、1年生というくくりで各教科の和を表示させたい 私が理想としている、クエリを実行した結果 出席番号   入力日  学年  組  国語  算数  社会  合計 001        6/4    1    2   2     3    2    7 002        6/4    1    3   3     2    1    6                          5     5    3    13 *1学年の和 003        6/4    2    1   4     2    2    8 私が現在作成しているクエリの実行結果 出席番号   入力日  学年  組  国語  算数  社会  合計 001        6/4    1    2   2     3    2    7 002        6/4    1    3   3     2    1    6 003        6/4    2    1   4     2    0    6 003        6/4    2    1   0     0    2    2 1)の重複データ非表示はグループ化で用件を満たしました。 2)〔合計〕というフィールドを作っての和は、クエリで演算子を使って要件を満たしました。 合計フィールドに(国語+算数+社会)と設定して。 【質問】 3)出席番号003の、一日に複数回データ入力している者を一行で表示させることが出来ません。 入力時間の違うデータが複数あるので、003が上のように複数行で表示されてしまいます。 理想のように1行で表示するにはどうしたらよいでしょうか。 4)の1年生全組の和(ここでは1年2組と3組の各教科と合計の和)を表示させるには、 どのようにしたらよいでしょうか。 以上2点、お分かりになる方がいましたらアドバイスお願いしたいと思います。

  • 重複を許すキーの構文がわかりません。

    データベース自体はPostgreSQLを使っています。そして、アクセス2003を使って、テーブルリンクで閲覧しています。 あるフィールドに検索が早くなるようにキーを設けたいのですが、 重複を許すキーの構文がわかりません。 PRIMARY KEY, UNIQUEの設定はわかるのですが、 どのように記述すればよいのでしょうか? 以下、アクセスのプロパティです。 インデックス ●いいえ デフォルト、無指定 ●はい(重複あり)[***** ここの部分のSQLが知りたい *****] ALTER TABLE テーブル名 ADD ???????? (フィールド); ●はい(重複なし)UNIQUE もしくは値要求混みのPRIMARY KEY ALTER TABLE テーブル名 ADD UNIQUE (フィールド); ALTER TABLE テーブル名 ADD PRIMARY KEY (フィールド);

  • Accessで重複したデータを削除したい。

    AテーブルとBテーブルがあります。AテーブルとBテーブルのフィールド名は同じですがデータはそれぞれ違います。AテーブルとBテーブルにあるデータを一つにまとめたいのですが、その際に、 「AテーブルとBテーブルの間で重複したデータがあるのでそれを削除したい。」のですが、手順としてどのような方法がスマートなのでしょうか。 (1)BテーブルをAテーブルに追加クエリで追加する。 (2)Aテーブルで重複クエリを作成し、重複しているデータを表示する。 ・・・・とここまで考えたのですが重複しているデータをどのように削除していけばいいかわかりません・・・。根本的にやり方が間違っているのでしょうか。どなたか詳しい方、いい方法を教えてください。よろしくお願い致します。

  • アクセスのクエリ作成について

    下記のようなテーブルとフィールドがあるとします。 Aテーブル  会社名 分類 都道府県 住所 HPアドレス  Bテーブル  担当者 部署 電話 メールアドレス Cテーブル  受付番号 分類 Dテーブル  受付番号 分類 ここでAテーブルの都道府県で一致するデータを抽出し、 下記のフィールドを表示するクエリを作成したいと思っています。 A 会社名 分類 都道府県 住所 HPアドレス B 担当者 部署 メールアドレス 電話 C 受付番号 D 受付番号 クエリを作成し実行しましたが、何もデータが出てきません。 全フィールド入力していないと抽出できないのでしょうか。 中にはHPアドレス等がない場合もあるのです。 すみませんが、どなたか教えて下さい。 よろしくお願いします。