• 締切済み

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

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

みんなの回答

  • kewa
  • ベストアンサー率38% (12/31)
回答No.1

こんにちは。 Access2000を仕事で使用している者です。 自分はこういうトラブルのときは、決まって 問題のあるテーブル名を変更し(例えばaccounttb→accounttb1)、 バックアップを取っていたAccess2000ファイルから accounttbをインポートしなおします。 これで八割がたのトラブルには対処できます。 たぶんmikawakkoさんのご質問の場合、テーブルにロックが かかっていると思います。

mikawakko
質問者

お礼

ご回答ありがとうございます。教えていただいた通りやってみたのですが、やはり同じ様にエラーになってしまいます。kewaさんのおっしゃる通り、テーブル自体にロックがかかっているのだとしたら、他にもっと直接的な方法でロックを解除することは出来ないのでしょうか。他に何か方法をご存知でしたら是非教えてください。

関連するQ&A

  • アクセス レコードセットを更新できません

    アクセスは初心者ですが、会社で少しずつ勉強しながら、会社のアクセスのシステムを管理しています。 先日から、突然既存のアクセスのシステムで、フォームを入力しテーブルに追加しようとすると「レコードセットを更新できません」とメッセージが出てきて、データを更新できなくなってしまっています。 特にアクセスを変更したりしていないのですが、突然なってしまいました。 今まで問題なく動いていたので、なぜそういったメッセージが出るのか分からず、困っています。 どういった対策をしたらよいでしょうか。 ご助言をお願いいたします。

  • レコードの値を編集不可能にしたい アクセス2010

    テーブルに紐づいているフォームを、レコードの値を編集不可能にするのは レコードセットをスナップショットにするのと、 レコードロックプロパティを「しない」以外にするのとどちらがいいのですか?

  • access2007について質問させていただきます。

    access2007について質問させていただきます。 VBAからフォームのレコードセットプロパティを変更することは可能でしょうか? フォームをデザインビューで開いたときのデータタブのレコードセットプロパティをボタンを押したときにダイナセットからスナップショットに変更したいのですが.....

  • accessでレコード更新直後の反映について

    アクセスのレコードの更新直後、他PCから該当レコードを読むと更新が反映されていません。回避方法をお教え下さい。 尚、アクセスの初心者です。 ”データ.mdb”をServerへ置き、複数のPCの”プログラム.mdb”から”データ.mdb”のテーブルをリンクし使用する予定です。 しかし、PC-Aの”プログラム.mdb”でテーブルを更新した直後PC-Bの”プログラム.mdb”からテーブルを読み込むと更新が反映されていません。 しかし、更新後 約2秒以上経過した後に読み込むと更新が反映されています。 試行錯誤しましたが改善しません。 以下に環境を示します。 Access2003で”データ.mdb”と”プログラム.mdb”を作成しAccess2010とAccess2003で使用 T_確認テーブルに”Yes/No型”で”アクセス中フラグ”を設定 ServerとPC-AとPC-BはLANで接続 <プログラム内容の抜粋> Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("T_確認テーブル", dbOpenDynaset, dbDenyRead) rs.MoveFirst If rs!アクセス中フラグ = True Then ' → または”if rs!アクセス中フラグ Then”でも同じ MsgBox "既に他者が使用", vbExclamation, "入力依頼" else rs.movefirst rs.edit   rs!アクセス中フラグ=True ' フラグをセット rs.update End If db.Close Set db = Nothing

  • データベースのレコードをaccessで修正出来ません

    なっちゃんです。 久しぶりのご質問です。よろしくお願いします。 早速ですが環境です  ・ OS Windows2000  ・ サーバー SqlServer2000  ・ アクセス access2003 ご質問です  上記の環境に SqlServer2000 をセットアップ  して access2003 を使いDBを登録したのですが  レコードの内容を更新(登録、削除、変更)する  ことが出来ません。    手順は SqlServer の EnterpriseManager を  使い空のDBを作成して それを access の  プロジェクトで開き、クライアントにあるmdb ファイルを別の access で開いてテーブルを  ドラッグ&ドロップで追加しました。  その登録されたテーブルの内容を変更することが  出来ません。 検証したこと  サンプルの NorthWind のレコードは access で  更新できます。  新規に作成したDBの内容は EnterpriseManager  を使うと変更できます。  サンプルの NorthWind のDBに上記の方法で  テーブルを追加しても、そのテーブルのレコードは  変更できませんでした。 以上のような状態で、たぶんどこかの設定(権限?) を変更する必要があると思うのですが、それが分からずに困っています。 どなたかお分かりの方がおられましたら 是非ご教授いただければと思います。 よろしくお願いいたします。  

  • レコード更新について

    レコード更新について 環境:ACCESS2000 状況:メインフォーム(マスター登録ボタン付)    サブフォーム(マスターテーブルをドラッグして貼り付けたもの)    マスターテーブル(品番 / レンタル日 / 返却日 / 貸出状況) やりたい事:サブフォームに表示してあるデータに       返却日をサブフォーム上で入力し(件数は不定)、そして       返却日が入力されたものの貸出状況を"返却済"と変更登録したい。 現状:コマンドボタンのイベントに Private Sub マスター登録ボタン_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("マスターテーブル", dbOpenDynaset) If rs!返却日 <> "" Then rs.Edit rs!貸出状況 = "返却済" rs.Update End If rs.Close Set rs = Nothing db.Close Set db = Nothing End Sub しかし、上記コードでは返却日はマスターテーブルに反映しているのですが 貸出状況が変わってなく、どのようにしたら良いかわからないため ご質問させて頂きました。 まだまだACCESS勉強中で未熟なため、検討違いなコードになっているかもしれませんが コードの修正・改善、または全く違う方法等ご教授願えればと思います。        

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

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

  • VB5.0でACCESS2002のテーブルをDBGridに表示

    VB5.0で開発したプログラム内でACCESS97のテーブルをDBグリッドに表示させていました。 ACCESSを2002にバージョンアップさせる必要があり、移行処理をしていましたが、そのままでは「データベースを認識できません」というエラーになってしまいます。DAOデータコントロールのDatabaseNameプロパティが設定できないようです。レコードセットでは読み込めているようなので、レコードセットをデータコントロールに割り当てたら表示されました。 そのときデータコントロールのrefreshはエラーになるためフォーム全体をrefreshしました。 ところがそれをコンパイルしてACESS2002のランタイムのみがインストールされているマシンにインストールするとDBグリッドが表示されません。 どうしたらよいでしょうか?こんな小手先の変更では無理でしょうか?宜しくお願いします。

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

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

  • アクセスのフォームを開くときに新しいレコードへ移動するには?

    アクセスの入力用のフォームを開くときに、新しいレコードへ移動させて、すぐに入力ができるようにしたいのですが、マクロを使っても「レコードセットの最後のレコードよりも後に移動することはできません」のエラーメッセージが出てしまい、新しい入力ができなくなってしまいました。プロパティの更新の許可、追加の許可、削除の許可はいずれも「はい」にしています。どうすれば新しいレコードの入力ができるのでしょうか?困ってます。

専門家に質問してみよう