Access2000の問題:レコードを追加できません

このQ&Aのポイント
  • Access2000でフォームから日付/時刻型のデータを入力しようとすると、「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」というエラーメッセージが表示されます。
  • 問題の原因は、T外部集計警備テーブルの結合キーがレコードセットに存在しないためです。
  • Q警備会社集計クエリを使用してフォームを作成する際、警備依頼日付を入力するとエラーが発生します。Accessの専門家の助けが必要です。
回答を見る
  • ベストアンサー

Access2000 / 「レコードを追加できません」

こんにちは Access2000で困っております。 簡単にいいますと、フォーム上から日付/時刻型のデータを入力しようとしても 「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されうまく入りません。 テーブルの構成ですが、 ★が主キー (1)T現場台帳 ★NO(オートナンバー型) 現場記号(テキスト型) ・ ・ 省略 (2)T外部集計警備 ★NO(オートナンバー型) 現場記号(テキスト型) 警備依頼日付(日付/時刻型) 警備会社ID(数値型) 集計人数(数値型) (3)T警備会社 ★警備会社ID 警備会社名(テキスト型) ・ ・ 省略 上記テーブルはリレーションがかかっており、 (1)T現場台帳.現場記号(テキスト型)----(2)T外部集計警備.現場記号(テキスト型) (2)T外部集計警備.警備会社ID(数値型)---(3)T警備会社.★警備会社ID それぞれ、参照整合性のついたリレーションです。 更にこれらをまとめるために、Q警備会社集計クエリ(選択クエリ)をつくりフォームに利用しています。 Q警備会社集計クエリの構成 T現場台帳.担当者ID T外部集計警備.警備依頼日付 T外部集計経緯日.警備会社ID T警備会社.警備会社名 T外部集計警備.集計人数 (並べ替えや絞込みは、なし) この「Q警備会社集計クエリ」を使って フォームからウイザードを使用してフォームを作成し、警備依頼日付を入力しようとすると「レコードを追加できません、テーブル’T外部集計警備’の結合キーがレコードセットにありません。」と表示されます。 どなたか、Accessの痒いところまで手の届く方、お助けください。

  • hooma
  • お礼率32% (51/157)

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

  • ベストアンサー
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.1

T外部集計警備テーブルのレコードを追加しようとした時に、 現場記号フィールドや警備会社IDフィールドにデータが入っていないものだから、 対応するT現場台帳テーブルのデータやT警備会社テーブルのデータがなくて 参照整合性を侵しているのだと思います。やり方は色々あるでしょうけれど、 これらのフィールドに既定値を設定するのが最も手っ取り早いように思います。

hooma
質問者

補足

アドバイスありがとうございます。 おっしゃる内容ですと、T外部集計警備テーブルの 現場記号フィールドと警備会社IDフィールドに規定値を設定すればいいわけですね。 しかし、上記の内容でやってもだめでした。 何かやり方がおかしいのでしょうか。

関連するQ&A

  • Access2007 「レコードを追加できません」

    Access2007で困っております。 フォーム上からテキスト型のデータを入力しようとしても 「レコードを追加できません、テーブル’T_アルバム’の結合キーがレコードセットにありません。」 と表示されうまく入りません。 【テーブル構成】 ★が主キー (1)T_アルバム ★アルバムID テキスト型 アルバム名 テキスト型 ジャンルID テキスト型 ソースID テキスト型 アーティストID テキスト型 (2)T_曲目 ★曲ID テキスト型 曲名 テキスト型 トラックNo テキスト型 アルバムID テキスト型 (3)MT_アーティスト ★アーティストID テキスト型 アーティスト名 テキスト型 (4)MT_ジャンル ★ジャンルID テキスト型 ジャンル名 テキスト型 (5)MT_ソース ★ソースID テキスト型 ソース名 テキスト型 【リレーション】 ※いずれも参照整合性付き (1)T_アルバム アルバムID --- (2)T_曲目 アルバムID (1)T_アルバム アーティストID --- (3)MT_アーティスト アーティストID (1)T_アルバム ジャンルID --- (4)MT_ジャンル ジャンルID (1)T_アルバム ソースID --- (5)MT_ソース ソースID フォーム作成のために「Q_アルバム情報入力」をつくりました。 アルバムID T_アルバム アルバム名 T_アルバム アーティストID MT_アーティスト アーティスト名 MT_アーティスト ジャンルID MT_ジャンル ジャンル名 MT_ジャンル ソースID MT_ソース ソース名 MT_ソース この「Q_アルバム情報入力」を使って、フォームウィザードからフォームを作成し、 アルバムIDやアルバム名を入力しようとすると 「レコードを追加できません、テーブル’T_アルバム’の結合キーがレコードセットにありません。」 と表示されます。 他のフィールドは値が入力できますが、これら2つのフィールドのみ入力できません。 なお、各テーブルのフィールドには予めデータが入っている状態です。 宜しくお願い致します。

  • Access アクセス VBA レコード追加

    Access フォームからのレコードの追加方法を教えてください。 テーブル1 ・ID(主キー) ・窓口 ・コストセンター ---------- テーブル2 ・コストセンター(主キー) ・目的 ---------- リレーションシップ テーブル1のコストセンターとテーブル2のコストセンターを一対多 ---------- メインのフォームに”ID”を入力したときにテーブル1に一致するレコードがない場合、新規登録用のフォームが表示されるようになっています。 新規登録用のフォームにレコードを入力してもテーブルに反映されません。 新規登録用のフォームは下記のように作成しています。 また、フォームに”コストセンター”を入力したときに入力したレコードがテーブル2にあっても自動で”目的”が表示されません。 メインフォームにはサブフォームで各テーブルが表示されています。 フォーム ・ID(初期値•••メインで入力したID) ・窓口 ・コストセンター ・目的 ・コストセンター(非表示) 上から順に ・テーブル1 ・テーブル1 ・テーブル2 ・テーブル2 ・テーブル1

  • アクセスでフォームでレコード編集、追加不可能

    エクセル2010でデータをテーブル作成をしました。アクセス2010でインポートして、インポートしたテーブルでフォームを作成。作成したフォーム使用して、データ変更できない。初心者用のテキストでは、フォーム・クエリから、レコード追加、既存レコードの編集が可能とありました。初心者なので、教科書通りでないと、何処が、どの様になり、フォームで追加、編集が不可能か分かりませんので教えて下さい。 ※OKWAVEより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

  • access クエリ レコードの追加ボタン?

    クエリのデータシートビュー時の 最下部に現在の位置やレコード総数などを表示する場所がありますよね?そこに「一番下のレコードに移動する」ボタンがありますよね? (「>*」のような記号のボタンです。) このボタンを有効/無効にする設定はどこでできますか? このクエリは1つのテーブルから作っているので、普通に作成すれば、レコードの追加も、内容の変更も出来ます。 実は、偶然にも無効にしてしまっているで有効に直したいのです。 フォームでいうところの「追加の許可」みたいな「新規レコードの追加はできる/できない」みたいな機能です。 よろしくおねがいします。

  • ACCESSでレコードのコピー

    ACCESS初心者です。 テーブルt_Aとt_Bがあり、t_Aを元にしたフォームがあるとします。 行いたいのはこのフォームでレコードを選択しボタンをクリックして t_Aの該当レコードのフィールドの値をt_Bのフィールドにコピー(新規追加)したいのです。 追加クエリでなんとかなるかなと思ったのですが思うようなクエリが作れないのです。 アドバイスをいただけませんでしょうか。 マクロ、VBAの利用方法についてはほぼわかっております。

  • Accessフォームの新規レコードについて

    いつもお世話になっています。 Access2000でフォーム作成をしているときにちょっと詰まってしまいました。 クエリからフォームの作成を行うと、フォームの新規レコードの追加ができないんです! テーブルからフォームを作成する場合は新規レコードの追加は可能でした。 クエリがあるとどうしても新規レコードの追加ができなくなってしまいます。 クエリからフォームを作成して、新規レコードの追加を行えるようにすればどうしたらいいんでしょうか? よろしくお願いします。

  • Accessでフォームからレコードの追加について

    Access2016をWindows10で利用しています。 あるテーブルの単票形式のフォームをフォームウィザードから作成しました。 入力規則などがテーブルの各列の設定に沿って作成されていてとても便利なのですが、フォームにいくつか値を入れた時点でレコードが新規追加されてしまいます。 レコードの追加を、すべての入力が終わって「新規追加」ボタン(あとから自分で作成)を押してから行いたいです。 レコードウィザードを使わずにフォームを作成し、フォームの値とクエリを結び付けてボタン押下時にクエリを実行する、というフォームにすれば実現できると思うのですが、それはなかなか手間がかかってしまうので出来るだけ簡便に実現できたらと考えています。 細かい話なので参考ページ、あるいはヒントになる検索キーワードを教えていただけないでしょうか m(‗ ‗)m ?

  • フォームのレコードソース(Access2000)

    質問させていただきます。 フォームの「レコードソース」でテーブルとクエリーのほかに、「SELECT テーブル名、フィールド名・・・」というのがあります。これもクエリーなのでしょうか? ちなみに、レコードソースの右にある「---」をクリックすると「SQLステートメント:クエリビルダ」というものが開きます(クエリー画面と同じ?)。 また、フォームのレコードソースはテーブル、クエリー、SOLステートメントのどれにすれば良いのでしょうか?

  • アクセス2000でのレコード新規追加

    アクセス2000です。 社員名簿を毎年更新してIDを作成しています。 データはCSVでもらうので、エクセルで「固有ID」「フリガナ」「漢字氏名」「性別」「生年月日」フィールドを作成し、アクセスのテーブルにインポートします。 貰うデータは既存の社員、新入社員が混ざっています。 なので、新入社員だけを追加して、固有IDを割り付けたいと思います。 そこで、生年月日、性別、さらにフリガナの後ろ3文字をマッチング(結婚などによる改正に対応する)して、同じならば同一人物と判断し、追加しない、マッチングしなければ新規としてレコード追加、更にIDを自動的に入力したいのですが、どうすればよいでしょうか? 新規IDは半角でアルファベット1文字+9桁の数字にしたいです。 最大値+1でよいです。(例えば、現在使っているIDが[y900000001]ならば[y9000000002]を割り付ける。 名簿テーブルを作って、クエリを作成し、そのクエリに計算式フィールド「フリガナ2: Right([フリガナ],3)」を作成しフリガナの後ろ3文字を表示させる事はできましたが、今度はそのクエリから重複クエリで「フリガナ2」フィールドを重複項目に指定するとエラーが発生してしまいました。 「集計関数の一部として指定された式'Count(*)>And[性別]=[クエリ1].[性別]And[フリガナ2]=[クエリ].[フリガナ2]And[生年月日]='を含んでいないクエリを実行しようとしました。」 上記エラーです。 欲を言えば、生年月日、性別、フリガナ後ろ3文字がマッチしたデータは同一人物として判断し、名前に書き換えたいです。IDは変更しないです。 解決方法、宜しくお願いします。

  • Access2002で任意のレコードのみをレポートで印刷したい

    http://oshiete1.goo.ne.jp/qa5272888.html の続きです。 テーブルは下記のとおりです。(計4つ) 1.顧客テーブル(データ投入済み) ・顧客ID(テキスト) ・顧客名(テキスト) ・フリガナ(テキスト) 2.納品書テーブル(データはフォームから自動生成) ・納品書ID(オートナンバー) ・納品日付(日付) ・顧客ID(テキスト) 3.注文テーブル(データ投入済み) ・注文ID(テキスト) ・顧客ID(テキスト) ・納品書ID(テキスト) ・数量(数値) ・摘要(テキスト) ・選択(Yes/No) 4.商品マスター(データ投入済み) ・商品ID(テキスト) ・商品名(テキスト) ・単価(数値) 以上の4つのテーブルでテストDBを作っています。 上述したとおり、フォームで、 1.新規レコードの作製 2.納品日付入力 3.コンボボックス(従業員名、カナ)をコンボボックスで選択 という手順を踏み、納品書番号が自動的に振られるフォームまで作成できました。 これを元に、レポートとして、 ・顧客を選択 ・納品書番号を選択 して、選択したレコードをレポートに表示したい、という質問です。 前の質問で、下記ご回答を得ております。 --------------------------------------------------------------- 1.納品書の一覧 以前作成した「納品書番号」のレコードソースを SELECT 納品書テーブル.納品書ID, 納品書テーブル.納品日付, 納品書テーブル.顧客ID FROM 納品書テーブル ORDER BY 納品書テーブル.納品書ID DESC; に変更して、新しいものが先に見えるようにします 2.フォームのプロパティで「データ」の「追加の許可」を「いいえ」にします。 3.ウィザードが起動したら「フォームの操作」「フォームを開く」と進み、「納品書番号(選択)」を開くようにします。これでいつでも新規納品書を作成できます 4.「納品書番号」フォームのイベントで「アクティブ時」を「[イベント プロシージャ]」にし編集ボタン(…)を押して、以下のようにします Private Sub Form_Activate() Me.Requery End Sub これで新規納品書作成後に「納品書番号(選択)」を閉じると、最新の納品書が表示されます 5.レポート「納品書」の作成 レコードソースは SELECT 納品書テーブル.納品書ID, 納品書テーブル.納品日付, 従業員マスタ.従業員名 FROM 従業員マスタ INNER JOIN 納品書テーブル ON 従業員マスタ.従業員ID = 納品書テーブル.顧客ID WHERE (((納品書テーブル.納品書ID)=[Forms]![納品書番号]![納品書ID])); 6.レポートにフィールドリストから「納品書ID」「従業員名」などを貼り付けます 7.「納品書番号」をデザインモードで開き、ボタンを追加し「納品書」レポートをプレビューで開くようにします。これで任意の納品書が印刷できるようになります 8.実際のレポートは納品書番号に対応するアイテムが並ぶ必要がありますが、これはレコードソース(クエリ)を拡張することでもできるし、親子レポートにすることでも可能です。色々試してください --------------------------------------------------------------- fuuten_no_nekoさん、ありがとうございました。 これまでは「フォーム」に関する質問で、今回は「レポート」に関するものに進んできましたので、新規の質問にしたほうがよいとのアドバイスを受け、この質問を立ち上げます。 なお、「今ここまでできている」という部分は、補足に記述します。 どうぞよろしくお願いします。