• ベストアンサー

Accessの一意性制約について教えてください

Microsoft Access2010を使い始めた者です。 名前の格納を、姓フィールドと名フィールドに分けてしていますが、 ”山田”と”太郎”の両方が一致するレコードがあった場合は 登録しないように一意性制約をかけたいと思っています。 アクセスではどのように設定したらよいでしょうか? Googleで検索をかけましたらわかりませんでした。 よろしくお願いします。

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

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

ユニーク索引を作成する例です。 テーブルデザインでリボンのインデックスをクリックして、新しい索引を作ります。(ex.姓名) フィールド項目に「姓」と「名」を追加し、インデックス名にカーソルを持っていき、下に出てくるインデックスプロパティで、「固有」を「はい」にします。 この場合は、姓名がNULLの場合重複が許容されます。

その他の回答 (1)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

テーブルのデザインビューで姓フィールドと名フィールドの双方を選択(コントロールキーを押しながら、クリック)してから、右クリックメニューの「主キー」を選択してください。

関連するQ&A

  • 複数キーでの一意制約

    表題の件宜しくお願いします。 MySQLで複数キーで一意制約はできますでしょうか? 調べてみたのですがそれらしい記事は見つかりませんでした。 例: テーブル名:test フィールド:field_1, field_2の2キーで一意としたい。 field1 = 2 field2 = 3 が格納されている時点で、 field1 = 2 field2 = 4 はインサート可能。 field1 = 2 field2 = 3 はNG。 両方のキーにunique制約を貼ればいけるかな?と思ったのですがうまくいきません。 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • Access2007でフィールドの規定値として、一意の文字列「D-★★★★-☆☆☆☆」(★と☆の部分は半角数字)を設定したい

    お世話様です。 まったくもって表題の通りなのですが、 Access2007でフィールドの規定値として、一意の文字列「D-★★★★-☆☆☆☆」(★と☆の部分は半角数字)を設定したいと思っています。 ●「」はナシです(説明のためにつけただけです) ●かならず D-のハンカク2文字が最初につく ●★★★★、および、☆☆☆☆の部分は、[0-9]が4つつづく ●新規レコードを追加しても、必ず値は一意になる (★★★★と☆☆☆☆が一致しても問題ないです。★と☆の間のハイフンは読みやすさのためにそうしたいとおもっただけなので) 一意とはいっても、数字の部分が8けたなので、 00000000~99999999までの1億レコードまでしか作れないことは承知です。 実際、1億もレコードが増えることは想定していません。 これを実現するにはどうすればいいのでしょうか? 自分、MySQLとPostgresはいじったことあるのですが、 Accesssはほんのちょっとでして・・・。 たぶんAccesssとしては初歩の初歩なのでしょうが・・・ ご存じの方、教えていただければ幸いです。 よろしくお願い申し上げます。

  • アクセス:文字レコードの集計をクエリで次のようなことを。

    こんにちは。アクセス初心者です。よろしくお願いします。 テーブル、もしくはクエリで次のようなものがあるとします。 id  氏名       A     B     C    D  ・・・ 28 山田 太郎  ○○ 88 海川 花子      △△ 28 山田 太郎          □□ 28 山田 太郎             △□ 88 海川 花子 ×× を id 氏名      A    B    C  D ・・・ 28 山田 太郎  ○○      □□ △□ 88 海川 花子  ××  △△ のようにまとめるクエリでの加工は可能でしょうか? 前提として、1レコードにid、氏名のほかは一つのフィールドを選んで入力することとしています。 よろしくお願いします。

  • ASPでデータベースを結合して表示させる方法について

    こんばんわ。 今、ASPでAccessにデータを登録したり削除したり、Accessのデータを検索したりするページを作ってみています。 登録はうまくできるようになったのですが、文字列をキーにしてデータベースを検索し、その結果をASPで表示させる際、データを結合して表示させることってできますでしょうか? 具体的には、 アクセスのフィールド名は名前(姓)、名前(名)と別れているのですが、ASPで表示させるときは一覧表の中で、名前と姓をくっつけて、表示させたいと思っています。 <アクセス> 名前(姓) | 名前(名) | 生年月日 山田   |  太郎  | 1900/8/1 <ASPでの表示> 名前     | 生年月日 山田 太郎 | 1900/8/1 以上、宜しくご教授ください。。

  • Microsoft Accessでのレコード抽出条件に関する質問

    Microsoft Access 2002 を使用しています。 ある項目(フィールド)と別のある項目とが一致しない場合、そのレコードを表示したいのですが、どのようにすればよいでしょうか? Excelにはき出さずにAccess上で実施したいと考えています。 回答宜しくお願いします。

  • [MySQL] UNIQUE制約の値を更新する方法

    表題にUNIQUE制約の値を「更新」する方法とありますが、 正確にはUNIQUE制約が設定された値を「入れ替える」方法について質問します。 あるテーブルに order という並び順(数値)を格納するカラムがあるとします。※このテーブルのプライマリーキーは id とします。 並び順ですので一意な値です。よって、order にUNIQUE制約を設定しています。 例えば 1~5 個のデータ(フィールド)があったとして、並び順も 1~5 あるわけですが、この並び順を入れ替える場合、並び順を格納しているカラム( order )にUNIQUE制約があるため、それぞれ UPDATE で上書きすることができません。 つまり、{ id: 1, order: 1 } というデータと { id: 2, order: 2 } というデータの並び順( order )を { id: 1, order: 2 } と { id: 2, order: 1 } というように入れ替えようとする場合、並び順( order )は一意であるため、UPDATE で上書きができないのです。 できればトランザクション内で処理したいのですが、これらの処理をスマートに更新する方法はないでしょうか。それとも、並び順( order )にUNIQUE制約を設定せず、アプリケーション側で並び順( order )を一意に保つよう実装するしかないでしょうか。

    • ベストアンサー
    • MySQL
  • ACCESSでのフィールド比較方法?

    ACCESSで、ある2つのレコードの各フィールドをそれぞれ比較して、フィールドが不一致であるレコードを抽出する機能はありませんか?

  • SQL Server2008 Express の文字列検索について

    SQL Server2008 Express の文字列検索について 検索対象のフィールド内にスペースが入っている場合に  スペースを無視して検索をすることができるでしょうか? 例 検索文字列 山田太郎 検索対象 山田 太郎 or 山田太郎 上記2つのフィールド値を含むレコードが両方表示されるような方法はありますでしょうか。

  • ACCESSのテーブルでこういう表示は可能でしょうか?

    お願いします 下記のように名前・電話番号・年齢フィールドあるテーブルがあり同一の番号が存在した場合には年齢が一番上の人が代表者となりそれ以外の人は同一のレコードの家族フィールドに表示させたいと思います。 そのようなクエリを組むことは可能でしょうか? 名前 電話番号             年齢 ==================================================== 山田太郎 00-0000-0000  50 山田花子 00-0000-0000  45 山田一郎 00-0000-0000  20 田中次郎 11-1111-1111  55 ↓ 代表者 電話番号            家族1  家族2 ==================================================== 山田太郎 00-0000-0000  山田花子 山田一郎 田中次郎 11-1111-1111 以上よろしく願いします。

  • Access のラベル印字の質問です

    Window7: Access2013: いつも、大変お世話になっております。ラベル印字につきまして、次の質問をさせていただきたいと思います。何卒、よろしくお願いいたします。 フィールドには[姓],[名],[所属],[年齢],[区分]があり、家族毎のラベルを作成したいのです。 山田 太郎 総務課 50歳 大人    次郎 fm   10歳 子供    花子 fm   46歳 大人 上記のようなデータがありますが、[姓]は代表者のみで家族には入力がありません。 [所属]につきましては、家族は[fm]とされています。 通常の印字では、1名毎に1枚のラベルが作成されて 総務課御中 山田 太郎様 50歳・大人 fm御中 次郎様 10歳・子供 fm御中   花子様 46歳・大人 となるところを1枚のラベルにまとめて 総務課御中 山田 太郎様 50歳・大人    次郎様 10歳・子供    花子様 46歳・大人 としたいのです。 [姓]でグループ化してみたり、又は 色々試してみましたが、どうもうまく出来ません。 大変、お手数ですが、何卒よろしくお願いいたします。

専門家に質問してみよう