• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access 「主キーにはnull値を~」のエラー)

Access「主キーにはnull値を~」のエラー

chayamatiの回答

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (257/615)
回答No.5

続きです (http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1368686318) このサイトのベストアンサーはテーブル間の結合に 1、完全一致 2、一方のテーブルの全てと他のテーブルに一致するレコードが無ければその項目が空白  仮にAテーブルとBテーブルとして  2-1.Aテーブルの全てとBテーブルに一致するレコード  2-2.Bテーブルの全てとAテーブルに一致するレコード この3通りの結合があるという事ですね フォームに想定通りのデータを入力すると『インデックスまたは主キーには~』のエラーが出てしまいます。 せめてどこにnull値が入っててエラーが出てるのかを表示してくれたらいいのですが・・・ --------------------------------------- こちらで再現出来ません。 何度も修正なさっているうちに変なデータが残ってしまったのでは おそらく主テーブルがAテーブルで複テーブルがBテーブルとして Bテーブルに無い項目がAテーブルの主キーにリレーションが設定しているものと思われます。 2-2の設定でクエリーを作成してクエリーを開くとAテーブルの項目が空白のレコードが表示されると思われます。 リレーションシップの編集は、クエリーをデザインビューで開き 【リレーションシップのラインを右クリック】⇒【結合のプロパティー】⇒【結合の種類選択】⇒【OK】 ----------------------------------------- レシートNo、購入日、種類ID、費目、値段、個数、店舗ID、その他 は1つのレコードの項目ですか 種類ID、店舗IDはそれぞれ種類テーブル、店舗テーブルが有りますね 種類テーブルには食材費、教養費等費用項目のほか給料、受取利息等収入項目 預金等財産項目、借入金等負債項目を想定されてますか? 目的は家計簿ですね、少なくとも現金出納帳の項目は必要です。 金額項目が値段の一項目だけではどうかと思います。 レシートNo.はどうかと思います。伝票No.として 自分なりにデザインしたものを添付します。

Mods-Rockers
質問者

お礼

ご回答ありがとうございます。 詳しく解説してくれた上、改善案まで提示してくださるとは、本当にありがとうございます。デザインの方、ありがたくそっくりそのまま真似させてもらいます。 皆様それぞれ、とてもためになるご回答をくださり、ベストを選ぶのが心苦しくありますが、繰り返し疑問に答えてくれ改善案も提示してくれたchayamatiさんの回答をベストアンサーに選ばせてもらいます。皆様、この度はどうもありがとうございました。

関連するQ&A

  • インデックスまたは主キーにはnull値を使用できません

    こんにちは。 アクセス初心者です。 練習のため給与管理をAccessで作っています。 単純なクエリを基に入力フォームを作りましたが (1)新規データを入力すると 「インデックスまたは主キーにはnull値を使用できません」 というエラーが出ます。 すべてのフィールドにデータは入っているのですが・・。 確認すべき場所があれば教えてください。 (2)またフォームに、1列目が会社リスト、2列目が会社名というコンボボックスを作りました。 コンボボックスで選択後、フォームで表示されるのは会社名、 テーブルに入力されるのは会社リストという設定はできますか? どうぞ宜しくお願いします。

  • アクセスでのキー違反とは??

    コマンドボタンをクリックすることで、クエリから登録、修正、削除ができるフォームを作成しました。ただ、処理はできるのですが、型変換エラーのため、0個のフィールドをNull値に設定しました。また2件のレコードでキー違反、0件のレコードで・・・とエラー表示がでます。原因は何なのでしょうか?無視すれば処理ができます・・。 コード→数値型、値要求(いいえ)インデックス(はい(重複なし)) 名称→テキスト型、値要求(いいえ)インデックス(いいえ) 更新日→日付/時刻型、値要求(いいえ)インデックス(いいえ)となっています。コードを主キーにしているので、インデックスの変更ができません。

  • Access 主キーの解除について

    'テーブル[売上]に主キーを設定します DoCmd.RunSQL "ALTER TABLE 売上 ADD PRIMARY KEY (No);" 'テーブル[売上]の主キーを解除します DoCmd.RunSQL "DROP INDEX PRIMARYKEY ON [売上];" Access2007を使用しています。 VBAで主キーの設定・解除をするため、上記のプログラムを組みました。動かしてみると、設定はできたのですが、解除のプログラムで以下のエラーメッセージがでました。 実行時エラー'3372': テーブル'売上'にインデックス'PRIMARYKEY'が見つかりませんでした。 見つからないと出たので売上テーブルを開き確認をしたところ、ちゃんと主キー設定されていました。 そこで手動で主キーの設定しなおしプログラムを動かすと、解除プログラムが動きました。 手動で設定すると動くのですが、何故プログラムで設定した主キーでは動かないのでしょうか。 ご教授のほど、よろしくお願いします。

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

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

  • 主キー、インデックスが作成できない

    お世話になります。 SQLserver2000とACCESS(フロント)で使っております。 主キーもインデックスも設定していなかったテーブルに エンタープライズマネージャから主キーを設定しようとしたのですが、保存しようとすると以下のエラーが出てしまいます。 もともと更新クエリを作成したのですが、”更新可能なクエリであることが必要です。”とエラーが出てしまい、いろいろ調べるうちに主キーを設定していないから??と思い、設定しようとしたのですがうまくいきません。。宜しくお願いします。 ■エラー内容 テーブル 'テーブル名 (ユーザー名)' - インデックス 'インデックス名' を作成できません。 ODBC エラー : [Microsoft][ODBC SQL Server Driver][SQL Server]インデックス ID 1 で重複したキーが見つかったので、CREATE UNIQUE INDEX は終了しました。もっとも重要な主キーは 'XXXX-00XXXX-00-A1 ' です。 [Microsoft][ODBC SQL Server Driver][SQL Server]制約を作成できませんでした。以前のエラーを調べてください。 [Microsoft][ODBC SQL Server Driver][SQL Server]ステートメントは終了されました。

  • Accessの主キーについて

    お願いいたします。 Accessの主キー設定について教えてください。 主キーの役割は、テーブルの中のレコードを区別 するための機能だと思いますが、 フィールドのデータ型をオートナンバー型にして おけば主キーの設定は必要ないのではないでしょう か? 主キーを設定する理由としては、参照整合性のため に行うという考え方で良いでしょうか? また、複数の主キーを設定するという場合のテーブ ル構成はどのような場合のシステムなのでしょうか? どうぞ教えてください。

  • 主キーを追加しようとするとエラー

    MYSQL4.0を使っていますが、 テーブル作成後、主キーを追加しようと ALTER TABLE MYTABLE ADD PRIMARY KEY ID; などと書くと、syntaxエラーになってしまいます。 どこが悪いのでしょうか、 分かる人がいましたら教えてください。

    • ベストアンサー
    • MySQL
  • 主キーにインデックスは貼らないと駄目でしょうか?

    いつもお世話になっております。 テーブルを作成したときに主キーのインデックスは改めて 貼る必要があるのでしょうか? それとも自動的に インデックスを貼ってくれます?

  • テーブル設計の主キーについて質問があります。

    テーブル設計の主キーについて質問があります。 マスタを物理削除せず、論理削除するデータベースを考える時、 削除日時を主キーに持ってきたりするレイアウトはよくありますでしょうか。 DBはmysqlです。 例) <会社マスタ> (PK)会社コード (PK)会社支店コード (PK)削除日時    会社名    住所 主キーにNULL値は入れられないと思うのですが(←あっていますでしょうか)、 削除日時を無理やりNULL以外のものを入れたとします。 そしてアプリケーションで検索を考えた時に、”削除になっていないもの” を対象にレコードを探します。 インデックス(この場合は主キーですが)が検索高速化に有効に使われるのは、 なるべく対象が少なくなるものと思います。 以上を考えれば、 割合が多い削除日時を主キーにもってくるのはいかがなものかと思うのですが、 どうなのでしょうか。 宜しくアドバイスお願いいたします。

    • ベストアンサー
    • MySQL
  • インディックスまたは主キーには、Null値を使用で

    Access2007です。 主キー | フィールド名| データ型 .... |フィールドサイズ ------|-- ---------|----------|---------------- ○....... | 担当者CD ..... | テキスト型 | .....3 ------|------------|-----------|---------------- .............. | 担当者名 ...... |テキスト型 .. | 20 以上の設定ですが、 「インディックスまたは主キーには、Null値を使用できません。」 とでて主キーが設定できません!?  なぜできないのでしょうか?  宜しくお願い致します。