• ベストアンサー

ACCESSでデータ削除すると「読み取り専用」と出る

WINXP、ACCESS2003 ACCESSで二つのテーブルの差分のクエリを作りデータの修正を行っています。 差分のクエリをそのまま、すべて選択してDeleteボタンでデータを削除しようとすると「データは読み取り専用です」と表示され、削除することができません。 レコードを選択して右クリックしても「削除」「新しいレコード」の箇所がグレーになっていて利用できません。 どこかが、読み取り専用になっているのでしょうか? ちなみに、元のテーブルは削除できます。 よろしくお願いします。

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

  • ベストアンサー
  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.1

クエリのデータを編集する - Office Online http://office.microsoft.com/ja-jp/access/HA100978761041.aspx?pid=CH100645771041 を読んでね > ACCESSで二つのテーブルの差分のクエリを作りデータの修正を > 行っています。 が、「更新可能なクエリ」では無いと言う結論だと思うよ クエリの作り方、テーブルの相互関係など、複合的な話で決まるから、現状、SQL文を公開するなり、テーブルの構造の話をするなり、しないと、具体的なアドバイスは、ないということね

baggio100
質問者

お礼

早速、回答ありがとうございます。 マイクロソフトのHPで確認しました。 いろんな条件があるようですね。 テーブルの初期作成方法がわからなく、プロパティでいろいろ確認しました。 特に編集できない状況はわからないので、 「Dynaset(Inconsistent Updates)/ダイナセット (矛盾を許す)] 」 に設定して削除しました。 データを確認しましたがうまく出来ていました。

関連するQ&A

  • ACCESSの削除クエリについて

    ACCESSの初心者のものです。 選択クエリで2つのテーブルから一致した項目を抽出したものをだしました。 そのレコードを(2つのテーブル)のデータを削除したいのですがどうすればいいでしょうか? よろしくお願いします。

  • Access フォームのレコードソースに選択クエリを設定した場合のレコード削除

    ACCESS2003を使用しています。 フォームでレコードソースをあるテーブルの選択クエリにしています。 フォームはデータシートビューでレコードを右クリックして削除すると、 削除されますが(画面上からは消えますが)、フォームを再立ち上げすると 元に戻っています。 よく見ると選択クエリからレコード削除しても元のテーブルからは 削除されません。 こういうものなのでしょうか?

  • Accessのフォームから削除したレコードをテーブルに保存したい

    Accessを利用してフォームからデータを入力しているのですが、クエリを使わずフォーム画面から不必要なレコードをコマンドボタンで削除しています。削除したレコードをテーブルに保存したいのですが、追加クエリで条件を決めずにフォームの画面から判断したレコードだけを削除し、かつ削除したレコードを削除専用のテーブルに追加する方法を教えてください。よろしくお願いします。

  • Access2000の削除クエリで消してしまったデータの復旧

    Access2000を使用していますが、うっかり抽出条件を入れるのを忘れて削除クエリを実行してしまい、テーブルの中のレコードをすべて消してしまいました。バックアップを取っていなかったので、データが無います。 何か削除したレコードを復旧させる方法はありますでしょうか。難しいとは思いますが、どうぞ宜しくお願いいたします。

  • アクセスのデータ削除について

    Access97を使用して、受電内容のデータを管理しています。 ここ最近データが膨大になりサイズも当然大きくなり、 重くなってしまったので古いデータを削除する事にしました。 テーブルから削除するレコードを選んで「レコードの削除」を 行なってみたんですが、サイズが変わらないのです。 どのようにすればきちんと容量を減らす事ができるのでしょうか? ご指導のほどよろしくお願いいたします。。。

  • Access テーブルをデータシートビューで開くことが出来ませんというメッセージが出ます

    Accessで単純な入力をさせていたところ、「急に『レコードが削除されました』というメッセージが出たんですけど・・」と担当者が言ってきました。確認したところ、マスターのテーブルも『レコードが削除されました』『テーブルをデータシートビューで開くことが出来ません』とメッセージがでて、関連するクエリなどすべて『レコードが削除されました』とエラーが出ます。入力していた担当者は「変なことはしてません」と言っていますが。入力していた作業内容はもともとあるデータから該当のデータを検索して追記するだけの単純な作業です。Access2000でWinXPを使っています。本当にデータは削除されているのでしょうか?また削除された場合、なんとかデータを復活させる方法はあるのでしょうか?私が操作していないので、どういう経過でこうなったかわからず、ほとほと困っています。考えられる方法があれば教えて下さいませ。よろしくお願いいたします。

  • ACCESS2007でレコードの条件付き削除

    よろしくおねがいします。 テーブル [仕訳伝票]、[仕訳明細]に 仕訳IDで 前者が1、後者がN のリレーション設定しています。 [仕訳伝票]の仕訳日のフィールドが削除日以前のデータを削除するのに次のようにしました。 「仕訳明細クエリ」作成 ※添付画像を見てください DoCmd.RunSQL ("delete FROM 仕訳明細クエリ;")で 「 実行時エラー'3086' 指定したテーブルから削除できませんでした 」 因みに 「仕訳明細クエリ」を開いてDeleteキーで手動削除すると仕訳明細のレコードは削除できましたが仕訳伝票のレコードは残っています。

  • アクセスのクエリでレコード削除ができません。

    アクセス超初心者です。 テーブルを商品コードでくっつけて、クエリのデザインビューで表示しました。 いらないレコードを削除しようとしたところ、できません。 くっつける前の、テーブルではできますが、クエリで実行させ、レコードを削除しようとしたところできません。 どうしたらよいのか教えてください。 あと、もうひとつ、クエリで、出力したいフィールド名をドラッグしたあと、削除したいときには、どうすればよいでしょうか? 表示しないなら、できるのですが・・・。削除がわかりません。 よろしくお願いいたします。

  • ACCESS 重複データ削除の順番について

    追加クエリを使って重複データを削除する時に、削除されるデータについて質問です。 重複レコードを含むテーブルの構造のコピーを作成し、重複レコードを含むすべてのフィールドの主キーを作成して、元のテーブルから新しいテーブルへの追加クエリを実行して、重複レコードを一括削除をしています。 [操作についての参考URL] http://support.microsoft.com/kb/879852/ja =========================================== (テーブル) [ID]  [クラス]  [名前]   [時間]     1     A     ああ   11:00 ←重複 2     B     鈴木   12:00    3     C     アア   13:00     ←重複  4     A     ああ   14:00 ←重複 5     B     森    15:00   6     C     アア   16:00     ←重複  7     B     青山   17:00   8     C     アア   18:00     ←重複     9     A     ああ   19:00 ←重複 =========================================== 上記のようなテーブルで「クラス」と「名前」の2つのフィールドを主キーにした場合、 「A」の「ああ」さんと、「C」の「アア」さんが各3件ずつ重複しています。 しかし、「ID」と「時間」はそれぞれ違っています。 このような場合に、削除されないデータと削除されるデータの違いは何なのでしょうか? ACCESSの仕様でとか、レコードの若い番号順で削除されるとか、明確なルールが あれば教えていただけると幸いでございます。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • アクセス97マクロ:テーブルデータ削除の条件設定方法について教えてください。

    どうぞ教えてください。 毎月仕事上である処理が終わった後に、いくつかのテーブルのデータの一部を削除する作業があり、これをマクロで自動的に処理できるようにしようと考えました。 そこで、最初は削除したいテーブルごとに削除クエリを作り、Where条件として削除したいデータの年月を尋ねるようにし、これをマクロで「クエリの実行」として複数の削除クエリを一気に実行してまとめて処理しようとしました。 上記でも処理はうまくいきます。 ただ、もしクエリを使わずにマクロだけでこのような処理が可能なのであれば、クエリの数も減るため、できればそうしたいと考えています。 その場合、マクロデザイン画面で「テーブルを開く(テーブル名入力)」→「レコードの選択」→「削除」とすれば削除はできると思うのですが、全てのレコードを削除するわけでなく条件に合致する一部のデータだけ削除したい今回のような場合、Where条件(年月)をマクロ上で尋ねるor設定するにはどうしたらいいでしょうか?