• ベストアンサー

Access フォームでレコードを更新できない

お世話になっております。Accessの操作に関する質問です。 XMLのデータを3つインポートし、リレーションを張りました。その後フォームを作成し、フォーム上からデータの更新をしようと考えています。 しかしフォームに出現したデータは一切の変更(文字入力、削除など)を受け付けず、PCからはエラー音が鳴ってしまいます。 デザインビューでプロパティを参照したところ、更新は受け付ける設定になっていました。また、テーブルからですと、変更をすることが可能です。 フォームからデータの更新をするためには、どう対処すればよろしいのでしょうか。どうかご教授ください。

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

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

検討違いかもしれませんが・・・ データの保存時に、「インデックス、主キーまたはリレーションシップで値が重複しいてるので~」のようなエラーメッセージなどがでていますか? もし出ていたら、主キー側のテーブルのフィールドを使っているのではないでしょうか。多側のテーブルのフィールドを使えば、追加できると思います。 的外れだったらすみません。

milkteen
質問者

お礼

ご回答ありがとうございます。ご指摘のとおり、リレーションシップに関する指定ミスでした。 具体的には、複数のテーブルをインポートし、リレーションを貼ったものの、<主キーを設定していない>がゆえに起こったものでした。 全く初歩的なミスでお騒がせしてしまい、申し訳ありませんでした。

関連するQ&A

  • Accessのフォームについて

    Access2000を使用しています。 フォーム/デザインビューで「プロパティ」からテキストボックスの名前を変更したのですが、 それがデータシートビューのカラム名に反映されません。 テキストボックスを何度もコピペしたり、「ラベル」が邪魔で削除したりしたのですが、 これがいけなかったのでしょうか? 既にかなりのデータを入力してしまった(気付くのが遅かった)ので、 出来ればフォームの作り直しは避けたいのです。 効率的な解決方法を教えて下さい。

  • アクセス2000、最適化後のレコード更新

    アクセス2000を使用しています。最近DB容量がかなり大きくなってきたので、最適化処理を実施したのですが、それ以後、複数のテーブルのデータが変更出来なくなりました。フォーム上で変更しようとすると「このレコードセットは更新できません」というメッセージが出てしまいます。今まで通り変更できるテーブルもあるのですが。プロパティを最適化前のものと比較しても何も変わっていないため、処置できずに困っています。回避法をご存知の方が見えましたら是非ご教示ください。ちなみに、DBはアクセス97から2000に変換したもので、97時代は問題ありませんでした。

  • フォーム上の入力更新値を既定値にしたい

    最近アクセスを始めましたが、わからないことが多くて皆様のお知恵よろしくお願いします。 現在、フォームにデータ入力やレポート用のクエリ抽出要件用とレポート表示用として、非連結のテキストボックスを多数設置して利用していますが、一度入力した要件は、しばらくは同じ値で作業します。 よって、入力した要件データが次回もそのまま表示されるようにしたいのですが、たとえば日付入力テキストで、VBAのafterupdate で以下の設定をすると、一旦はデザインビューのプロパティの既定値が更新内容に変わっているのですが、終了・再立ち上げを行うと元の既定値に戻ってしまいます。 Private Sub 日付_AfterUpdate() Me!日付.DefaultValue = "#" & Me!日付 & "#" End Sub なお、入力後にフォームのデザイン等を一部変更・または直接プロパティで既定値変更した場合は、「フォームの変更を保存しますか?」の表示がでて、「はい」クリックするとフォームデザインとともに上記更新日付等も既定値が更新され、再立ち上げ時にも更新値が表示されます。 よって、フォームビューからの入力テキストの更新だけでは、見た目こそプロパティの既定値が更新されていますが、実際にはフォームの更新と認識されず、保存動作が行われていないようです。 更新ボタンをクリックしてからの終了や、close acSaveYes 等の設定してみても効果はないです。 フォームビューからの入力だけで、既定値更新の内容が保存できる方法があれば、よろしくお願いします。

  • アクセスのフォームが見れないのですが・・。

    クエリからひっぱってきて、フォームを作成しました。デザインビューでは見れるのですが、フォームで開くと背景の色(水色に指定)のみが表示されていて、一面水色です。どうしてこのようになってしまったのか原因が分からないのですが・・クエリの作成の仕方がまずかったのでしょうか・・。ちなみにクエリはテーブル3つをリレーションでつなげたものから作成しました。質問内容が分かりにくかったらすみません。フォーム背景に何も表示されていない原因は何なのでしょうか??

  • Accessのフォームについて教えてください。

    こんばんは。アクセス入門者です。 入門書やできるシリーズなどいくつかのアクセスの本を見たのですが、 フォームについて、理解できません。 ●担当者マスタ ■客先マスタ ★コードマスタ ▲売り上げ計画マスタ ◎売上げ結果マスタ テーブルを作り、それぞれのテーブルから必要な項目を集めて、クエリを作成しました。思ったとおりの結果になったので、これを元にフォームを作成しました。 思ったとおりの結果が表示されるのですが、このフォームに入力が出来ません。できなかったので、次の方法を試しました。 ★コードマスタと▲売り上げ計画マスタのデータをサブフォームに配置しデータを追加させようと思って、あらたにフォームを作りました。やはり、思ったとおりの表示はされるのですが、追加ができないのです。それぞれのテーブルには、★コードマスタを主にそれぞれ、一対多にリレーションを組んでいます。 1つのフォームで色々なテーブルに結果を反映できるように、参照整合性の更新、削除にもチェックを入れました。 この考えは間違っているのでしょうか。 ○○マスタとあるように、それぞれ1つのテーブルに1つのフォームにしなければならないのでしょうか。 複数のテーブルから取り出したデータの更新は無理なのでしょうか。 ある程度、クエリまで完成したのにフォームでつまずいて苦しんでいます。ご解答宜しくお願い致します。

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

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

  • Access フォーム「使用可能」を「いいえ」にすると・・

    フォームのデザインビューから、プロパティで「使用可能」についてです。デフォルトでは「はい」になっています、これを「いいえ」に変更するとグレーっぽい背景色(塗りつぶし)に強制?変更されてしまいます。 よい機能なので使いたいのですが、塗りつぶし色を変更することはできませんか? バージョンは2007です。

  • アクセス2000のフォームについて

    アクセスでまたつまずいてしまいました。ちょっと教えてください。 複数のテーブルから選択クエリを作り、それを基にオートフォームでフォームを作ったのですが、フォームでデータの入力が出来ません。クエリでもデータの入力が出来ません。 「このレコードセットは更新できません」と下のほうに出ます。 フォームのプロパティのデータの更新の許可と、データ入力用のところは“はい”になっています。 私では原因がわかりません。わかりにくい質問でしょうが、どなたかご指導お願いします。

  • アクセス 数値型にするとフォームの入力ができない

    お世話になります。色々調べたり、実験してみたのですが、分からない点があります。 簡単でいいので、可能性のある原因を教えてください。 アクセス2003です。 ■パターン1  フォームC の入力ができる テーブルA(主キーがオートナンバー型)、その他4つのテーブル(これら5つのテーブルは、参照整合性リレーションで結ぶ) →それらを元にクエリBを作る→クエリBを元にフォームC を作る ■パターン2  フォームC の入力ができない テーブルA(主キーが数値型)、その他4つのテーブル(これら5つのテーブルは、参照整合性リレーションで結ぶ) →それらを元にクエリBを作る→クエリBを元にフォームC を作る 簡単にいうと、テーブルのデータ型によって、入力可否が変わるのです。 なぜ、パターン2は、入力できないのか分かりません。 よろしくお願いします。

  • Access フォームからの入力結果をテーブルにすることはできない?

    Access フォームからの入力結果をテーブルにすることはできない? 使用しているのはWindows XP、Access 2003です。 とある調査結果をデータベース化する仕事を与えられています。 データ1件あたりの構成要素を一目で見れるようにするために「こういうレイアウトのフォームを作って」と上司からリクエストが出ています。 まず、今手元に集まっているデータについては、 Excelで一覧表作成 → Accessにインポートしてテーブル作成 → オートフォームでフォーム作成し、デザインビューでレイアウト変更 というふうにして、上司から言われたフォームは作りました。 今後、データは増えていくので、作ったフォームから新たにデータの追加をしていくことになるのですが・・・。 フォームからデータを追加しても、元となったテーブルにはリンクしませんよね? とすると、データを追加した結果をテーブルにしたい場合はどうしたらいいのでしょうか? 今度は、そこからクエリを組む必要も出てくるため、テーブルにしたいのですが・・・。 Accessについては、以前勤めていた会社の研修で習っただけで詳しい使い方をずいぶん忘れてしまっています。今回、自分なりにいろいろ調べてはみたのですが、よくわかりませんでした。 もしかしたら、Accessの使い方を基本的に間違っているでしょうか・・・ よろしくお願いします。

専門家に質問してみよう