Access2003レコードがすべてロックされているため、フィルタを適用できません。エラーについて

このQ&Aのポイント
  • Access2003のフォームでレコードがすべてロックされているため、フィルタを適用することができないエラーが発生しています。
  • マウスのスクロールボタンを使用すると、1レコードスクロールするたびにエラーメッセージが表示されます。
  • また、新規入力時にも同様のエラーが出ることがあります。おそらくフォームの設定がおかしくなっている可能性があります。
回答を見る
  • ベストアンサー

Access2003 レコードがすべてロックされているため、フィルタを適用できません。エラーについて

お世話になっております。 Access2003のフォームで今までは普通に使えていたのですが、突然エラーが出るようになりました。 マウスのスクロールボタンでスクロールすると通常は次々にレコードが変わっていきますが、1レコードスクロールするたびに、”レコードがすべてロックされているため、フィルタを適用できません。”というエラーが表示されます。(エラーを閉じると次のレコードには移っています。) コマンドボタン移動するときはこのエラーは出ません。 また、新規入力をするときに、最初に何か入れた時点で同様のエラーが出ます。 そのエラーを閉じれば次からはそのエラーは出ません。 エラーメッセージによると、この二つが”すべてのレコードになっていると書いてありますが、二つともロックしないになっています。 ・オプション≫詳細≫規定のレコードロック ・フォーム≫プロパティ≫レコードロック 思えばこのエラーが出る前後にほかのフォームでVBAが消えるという現象が起きましたので、何かがおかしくなっているのでしょうか。 ご教授いただければ幸いです。よろしくお願いいたします。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

そのmdbと同じフォルダ内にレコードロック情報が残ってしまっていないでしょうか?(mdbを開いていない状態の時に) もしレコードロック情報が残ってしまっている場合は削除すれば戻ると思うのですが・・。 レコードロック情報も残ってないようであれば 新しいmdbを作りそのmdbにフォーム等をインポートしてエラー表示するか確認してください。 エラー表示が出ないようであれば元のmdb自体に何か損傷があるのではないかと思うのですが。

kami21
質問者

お礼

ついに壊れてしまいましたので、最初から作り直そうと思います。 いろいろとありがとうございました。

kami21
質問者

補足

ありがとうございます。 フォルダ内にレコードロック情報はありませんでした。 新しいmdbにインポートしても同じエラーが出ました。 別のフォームでも”テーブル・・・は現在ほかのユーザーまたはプロセスで使用されているのでロックできませんでした。”というエラーが出ました。 エラーが出るはずがないようなところで出ていますので、次々におかしくなっている感じがします。 何かわかりましたらお願いしたいと思います。よろしくお願いいたします。

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

VBEを開きデバッグのコンパイルをしてエラー等でませんでしょうか。 データベースユーティリティのデータベースの修復をしても同様でしょうか。

kami21
質問者

補足

いつもありがとうございます。 デバッグのコンパイルはエラーが出ませんでした。 データベースの修復をしても変化はありませんでした。 すみませんがよろしくお願いいたします。

関連するQ&A

  • アクセス2007 OrderByの適用はどこですか?

    アクセス2007 OrderByの適用はどこですか? フォームに置いたボタンで並び換え(OrderBy)をしています。(VBA) フォームAのレコードソースはクエリAです。 クエリAにあってフォームAには無いフィールドをOrderByで指定してもエラーになりません。 並び換えも正常です。 私のミスなのか、そのような仕様なのか、どなたかご教示を。 ※フィルターの場合はエラーになるのに?

  • Access2000のレコード削除について

    Access2000のVBAにより、フォームに配置したコマンドボタンを押すことで、テーブルの全レコードを一度に削除したいのですが、どの様にすればよいのですか? 構文で教えて頂けると助かります。とても困っています。よろしくお願いします。

  • Accessでレコードの保存をせずにフォームを閉じたい

    Accessでデータベースのレコード追加を行うフォームを作成しています。 コマンドボタン(1)をクリック→新しいレコードの追加 コマンドボタン(2)をクリック→フォームを閉じる としています。(ウィザードを使用して、埋め込みマクロ?を設定しています。) コマンドボタン(1)でレコードが追加されるのは問題ないのですが、 コマンドボタン(2)をクリックした場合も、レコードが追加されていることに気がつきました。 一般的に入力する人は、 データを追加しようと思って入力していたけれど、 途中でやめてフォームを閉じることってありますよね? そういう場合にレコードが追加されてしまったら問題だと思ったのです。 ですが、どうしたらレコードの追加をせずにフォームを閉じられるかがわかりません。 それって可能でしょうか? Access初心者です。難しいVBAとかはまだよくわかりません。 何か方法、アドバイス等ありましたら よろしくお願いします。

  • Access「レコードの移動」マクロについて

    表形式でフォームを作っています。 そして、コマンドボタンを使って、「レコードの移動」ができるように、マクロを使って アクション 「レコードの移動」 ---アクションの引数---- オブジェクトの種類---フォーム オブジェクト名-------問題 レコード-------------次のレコード オフセット-----------4 としています。(コマンドボタンを1回押すと、4件ごとに画面を動かしたい) しかし、 問題NO---------問題 1----------なん 2----------ああ 3----------なな 4----------ああ  □←これがコマンドボタン コマンドボタンに「クリック時」にマクロが実行できるように設定をして クリックすると 問題NO---------問題 2----------ああ 3----------なな 4----------ああ 5----------いい  □←これがコマンドボタン となってしまいます。そして再度コマンドボタンを押すと 9----------がが 10---------ss 11---------ff 12----------ああ  □←これがコマンドボタン ------------------------------------- になってしまいます。なので、オフセットを4から7に変えると 1回コマンドをクリックすると先頭にくる番号は「8」になったり・・・困りました。 で、フォームには1-4のレコードが表示されるようにし、コマンドボタンを1回押すと5-8、9-12と表示させたいのです。 とできれば、(全部で160行あるのですが)最終行のフォームが出てきて、コマンドボタンをクリックしてもマクロ実行エラーが出ないようにもしたいです。 よろしくお願いします。 Accsee2000 WIN98

  • AccessVBA フィルタとカレントレコードの移動について

    現在、下記のような構文で、「フィルタ」というテキストボックスに文字を入力し、「フィルタ実行」というボタンを押すと、フィルタがかかるように作っています。 ---------------------------------- Private Sub フィルタ実行_Click() Me.Filter = "故障処理票番号 like '" & Me!フィルタ & "'" Me.FilterOn = True End Sub ---------------------------------- ※故障処理票番号のデータ型はテキスト型。 頭にアルファベット2文字と4桁の数字からできています。例:AA0001 ※フォームは表形式。 2つ質問があります。 1)テキストボックスに入力した値で始まる文字をすべてフィルタで抽出する方法。 つまり、"AA"で始まる番号をすべて検索したい場合に、テキストボックスに"*"を入力することなく、結果が返る方法を教えてください。 2)フィルタで抽出したレコードをカレントレコードにする方法。 複数あった場合には、レコードセレクタで選択したレコードをカレントレコードとする方法を教えてください。 (ボタンを押すと、カレントレコードとなっているレコードの詳細表示(単票フォーム)に飛ぶように設定しているので、カレントレコードを移動する必要があります。ボタンは詳細セクションのそれぞれのレコードの横に表示されるよう作成しています) VBA独学&初心者なので、多分、初歩的な質問なんだと思います。どうぞよろしくお願いします!!

  • ACCESSのフィルタ

    WIN2k ACCESS2K ACCESSの機能に「フォームフィルタ」なるものが ありますが、これを使うとフォーム上に作った コマンドボタンが使えなくなります。 どうすれば使えるようになるのでしょうか。

  • フィルタ後のテーブルのレコード数を取得したい

    アクセスvbaです。 フィルタ後のテーブルのレコード数を取得したいのですが Debug.Print DCount("[フィールド1]", "テーブル1") だと、フィルタ前の数が取得されてしまいます。 フォーム1にテーブル1を紐付けて、 更にフィルタをしているのですが、 元のテーブル1のレコード数が10として、 フィルタ後が3なら、3を取得するVBAコードを教えてください。

  • アクセスVBAのエラーについて

    フォームを閉じるためにフォームにボタンを置いて、イベントプロシージャに下記のように書き込みました。すると添付画像のエラーが返ってきてマクロが動きません。 Private Sub コマンド103_Click() On Error GoTo Err_コマンド103_Click DoCmd.Close Exit_コマンド103_Click: Exit Sub Err_コマンド103_Click: MsgBox Err.Description Resume Exit_コマンド103_Click End Sub で、「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作します。 つまり”フォームの表示”で選んだフォームでしかコマンドボタンのマクロが動きません。全てのフォームでマクロが動くにはどうしたらよいのでしょうか?

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

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

  • ACCESS 単票形式フォームの新しいレコードでのカーソルの位置

    単票形式フォームで、新しいレコードを入力の際に、カーソルをタブオーダーの1番最初に点滅させることが出来ないでしょうか? また、フォームで使用しているコマンドボタンにショートカットキーを割り付けることがでないでしょうか? と、言いますのは、一つのレコードを打ち終わって、ショートカットキーで次のレコードに移るコマンドボタンを押して、そのまま入力できれば、キーボードから手を離さずに打ち続けることができるのに・・と思いまして。 何卒、お願いします。m(__)m