• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessでの新規レコードの追加の方法)

Accessでの新規レコードの追加方法

このQ&Aのポイント
  • Windows XP上でMicrosoft Access 2000を使用しています。オートナンバー型フィールド1つのみを含むテーブルに新規レコードを追加する方法を教えてください。
  • レコードセレクタからレコード追加を選んでも追加されません。テーブルに別のフィールドを追加するとレコードの追加が可能なのですが、オートナンバー型フィールド1つのみではうまくいきません。
  • Accessでの新規レコードの追加方法がわかる方、ご教示ください。

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

  • ベストアンサー
回答No.1

下記のような追加クエリを作成して、実行すれば追加できます。 INSERT INTO テーブル名 ( フィールド名 ) VALUES (Nz(DMAx("フィールド名","テーブル名"),0)+1); しかし、オートナンバー型フィールドの一つのみのテーブルなんて何に使うのですか。

a8389827
質問者

お礼

御回答誠にありがとうございました。 お礼が遅くなりまして申し訳ございません。

a8389827
質問者

補足

御回答ありがとうございます。 SQL を用いると、オートナンバー型フィールドにも任意の値を設定できるのですね。 件のテーブルは多対多の関係にある2つのテーブルを結び付けるために用います。両テーブルとも件のテーブルを1側とする1対多の関係にあるもので、件のテーブルには他にフィールドを必要としません。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

> 件のテーブルは多対多の関係にある2つのテーブルを結び付けるために用います。両テーブルとも件のテーブルを1側とする1対多の関係にあるもので、件のテーブルには他にフィールドを必要としません。 ということなら、オートナンバー型のフィールドにする必要性はないように思います。 数値型のフィールドでいいのでは。 これなら、追加クエリでもなくて、フォームから入力することも可能です。 ただ、そのような形の多対多関係のモデルが想像できません。 図示すると、 テーブル1 (多)---(1) 今回のテーブル (1)----(多) テーブル2 ということですが、 テーブル1 (多)------(多) テーブル2 と直接結合するのとなんら変わりはないです。 通常の多対多の関係のモデルは、 テーブル1   今回のテーブル  テーブル2 ID1 (1)---(多) ID1 ID2 (1)----(多) ID2 となります。 多対多リレーションシップを作成する - 新しいデータベースのリレーションシップを作成する http://office.microsoft.com/ja-jp/access-help/RZ101772998.aspx?section=9

a8389827
質問者

お礼

御回答誠にありがとうございました。 お礼が遅くなりまして申し訳ございません。

a8389827
質問者

補足

いつも速やかな御回答恐れ入ります。当方がむしろ追いついておらずに申し訳ございません。 確かに主キーのインデックスフィールドとしては、必ずしもオートナンバー型でなくとも数値型フィールドにして、よく知られる手段で自動インクリメントする方法でも構わないと存じます。オートナンバー型フィールドにした理由は、他のテーブルでオートナンバー型を採用したために全体の統一性を重んじたことであり、実務上支障が生じるのであれば他の方法に変えることも必要かと存じます。 リレーション構造としては、図示された通り、テーブル1 (多)---(1) 今回のテーブル (1)----(多) テーブル2、です。 多対多の一般的構造としては、ヘルプの受注明細テーブル採用のように、テーブル1 (1)---(多) 間を取り持つテーブル (多)----(1) テーブル2、かと存じます。 今回の構造を採用した理由を説明するためには抽象的な表現では限界がありそうですので、もう少し具体的に説明いたします。 目的はJANコード(GS1コード)からGS1事業者コードを抽出し、事業者のテーブルから検索することです。しかし、事業者の情報は過去の分も保持するため、同じ事業者でも名称や所在地などが変わる度に新しいレコードとして登録します。また、GS1事業者コードは一つの事業者に複数割り当てられることもあるので、複数の事業者情報と複数のGS1事業者コードを結び付ける必要があります。ここで、これらの情報は事業者そのものがそれぞれ持っている情報ですので、間に事業者そのものを表すテーブルを挟むことによって、それぞれのテーブルの持つ情報をまとめるられるようにしました。この場合、事業者そのものを表すのはコード一つでよいので、テーブル1(事業者情報) (多)---(1) 今回のテーブル(事業者そのもの、フィールドはコード一つのみ) (1)----(多) テーブル2(GS1事業者コード)という形にしたものです。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう