• 締切済み

Accessのmdbがすぐロックされてしまう。

お世話になります。 現在access2002を使ってシステムを構築しています。現状を説明させて頂くと, ・私    テーブル,クエリやマクロ等を作成・編集。 ・ユーザー テーブルやクエリを参照。テーブルの中身を編集。 という状況なんですが,ユーザーがクエリ等を開いているだけで全体にロックがかかってしまい,関係ないマクロやクエリの編集が出来ないことがよくあります。 「ユーザーが使う時間帯に編集しない」「先に開いてずっと所有権をもったままにしておく」「参照するようのファイルを別で作りそちらで参照させる。」等の運用面のカバーは思いつくのですが,ユーザーが現在編集しているテーブル以外にロックがかかる状態がやるせないです。 ・既定の開くモード「共有モード」 ・既定のレコードロック「編集済みレコード」 ・レコードレベルでロックして開くにチェック。 この三つを選択しているので,ユーザーがテーブルを開き,何らかの修正を行っていて,完了させるまではテーブル一つだけがロックされるってなればいいと思うんですがそうではないみたいです。 最終的な質問としては,「ユーザーがテーブルの編集をする度に全体にロックがかかってしまうのを防ぐ方法はないでしょうか?」となります。 お手数おかけしますがご回答宜しくお願い致します。

みんなの回答

  • takotan2
  • ベストアンサー率0% (0/1)
回答No.2

ごめんなさい。よく質問を確認しませんですた。。。 >>>・私    テーブル,クエリやマクロ等を作成・編集。 とありましたね。私の回答はスルーしてください。 失礼しました。。。

  • takotan2
  • ベストアンサー率0% (0/1)
回答No.1

こんにちは。 もし、テーブル構造の変更がなければ、コピーして編集すればいいのではないでしょうか?後に、テーブルをインポートできます。 1)質問者様 ・・・ コピーしたものでシステム構築 2)ユーザーさん ・・・ 本物でデータ入力等 質問者さんの仕事が終わったら、1)を本物とし、2)からテーブルをインポートする。 はずしていたら、ごめんなさい。。。

関連するQ&A

  • ACCESSのテーブルロックについて

    テーブルのロックについて教えて下さい。 ACCESS2000にてテーブル作成クエリを作成し、その作成したテーブルをフォームで参照しています。 そのフォームを開いたままで、再度、同じテーブル作成クエリを実行すると、 「テーブル○○は現在ほかのユーザまたはプロセスで使用されているので、ロックできませんでした。」 というメッセージが表示され、クエリを完了することができません・・・ これを回避する(クエリを優先する)方法、設定があったら教えて下さい。 宜しくお願いします。

  • ACCESSで実行時エラー3008

    ACCESS2000でデータベースを作っています。ADOやDAOは使っていません。 フォームにあるテーブルのデータシートを表示していて、そのフォームのボタ ンクリックイベントでダイアログ形式で別のフォームを表紙し任意の主キーを 取得して、DoCmd.RunSqlで表示しているテーブルに対してUPDATEを投げたいの ですが、 "実行時エラー3008 ・・・排他的に開いているか、ユーザーインターフェイス を介しているので、操作する事はできません。"というエラーがでます。 どうすればクエリが実行できますでしょうか? [ツール]-[オプション]-[詳細]の"既定の開くモード"は"共有モード"に、"既定 のレコードロック"は"ロックしない"にしています。

  • Access サブフォームの背景色

    開発環境はAccess 97です。 テーブルAとテーブルBを結合した選択クエリABを レコードソースとするフォームを作りたいと思います。 サブフォームを使用し、レコードの内容はデータシート 形式で表示したいのですが、ソースがテーブルAの項目 に対する更新は制限したいため、編集ロックプロパティを [はい]に設定しました。 編集ロックがかかっている項目は視覚的にそうと わかるよう、背景色を変えたいのですが可能でしょうか? 過去ログを調べたら「可能」「不可能」両方の回答が ありました。

  • ACCESS/VBA 追加レコードが表示されない

    ACCESS 2003 で開発しています。 フォームのデータソースがテーブルAで、テーブルAの主キーはオートナンバーです。 フォーム上のボタンをクリックすると、追加クエリを実行して、テーブルAに1レコード追加し、 フォームにそのレコードを表示したいのですが、 クエリ実行前の最終レコードが表示されてしまいます。 テーブルAを見ると、オートナンバーがふられたレコードが末尾にちゃんと追加されています。 Dim dbs As Database Dim Qdf As QueryDef Set dbs = CurrentDb Set Qdf = dbs.QueryDefs("Q_データ追加2") ←追加クエリ Qdf.Execute Me.Refresh '* 最終レコードを表示 DoCmd.GoToRecord , , acLast どのようにすれば、直前に追加したレコードをフォームに表示できるのか おわかりの方がおられましたら、お教え下さい。ちなみに、ACCESSは、   「既定の開くモード 」:共有モード   「既定のレコードロック」:ロックしない      という設定になっています。 よろしくお願い致します。

  • ACCESS内の検索

    お世話になります。できるのどうかわからないのですが宜しくお願いします。 ACCESSを利用し在庫管理などを行っているのですがその際、例えばクエリ名「A」というクエリをレコードソースとしフォームを作るとします。さらに同じクエリをレコードソースとしレポートを作ります。こういったように同じクエリやテーブルを使用する場合、システムの規模が大きくなるとクエリやテーブルがどこでどのように使用しているか把握しきれなく、また時がたつにつれ忘れていってしまいます。そこで、クエリやテーブルがどこで(クエリ、フォーム、レポート、マクロ、モジュールなど)使用されているか検索できるようにするにはどうしたらよいでしょうか? 宜しくお願いします。

  • ACCESSのマクロに関しまして

    お願いします。 ACCESS97で追加クエリを作成し、その後自動起動にしようと思い、マクロで追加クエリを項目に入れマクロを作りました。 マクロを作成する際に、モジュールでレコード追加するテーブルを一度削除しようと思い、「DELETE文」でモジュールを作成し、マクロの追加クエリの前に「プロシージャの実行」でモジュールのプロシージャを実行するようマクロに記述しました。 <マクロ内容> (1)「プロシージャの実行」  (追加クエリで追加するテーブルの中身をDELする) (2)「クエリを開く」  (追加クエリでレコード追加) この用に記述し、マクロ名を「AutoExec」で記述して、ファイルを実行してもマクロが起動しません。 (1)の「プロシージャの実行」までは、実行されているようなのですが(テーブル内確認)、以降の追加クエリが実行されません。 何か他の設定があるのでしょうか? お願い致します。

  • アクセスの追加クエリについて

    二つのテーブル間(AとB)を追加クエリを使い AからレコードをBに追加することは出来たんですが、 逆にBからAにレコードを追加しようと選択クエリを追加クエリに変更しようとしたんですが、ウィザードの追加先テーブル名にAのテーブル名が表れないですがその理由が全く分からないので分かる方教えていただけませんか? AとBのレコード内のフィールドは同じです。 AからBにレコードを移行する処理としてマクロを使いアクションとして ・クエリを開く(これは追加クエリです) ・SQLの実行(上と同じクエリを削除クエリに変更し、そのSQL文をSOLステートメントに貼り付けました) 上の処理は問題なく出来たので逆のBからAへレコード移行処理のマクロを作ろうとしたのですが、追加クエリの追加先テーブルにテーブルAの名前が出てこないので困っています。こういったAからB。BからAという処理は追加クエリで出来ないのでしょうか?

  • ロックについて

    SQL SERVER2000 お初に投稿します。 初歩的な質問で申し訳ありませんが、ロックについてご質問させて頂きます。 通常、テーブルを更新するときには、排他ロックがかかると思うのですが、 更新途中に他者がテーブルを参照しようとすると、参照できないのでしょうか? また、複数のユーザが同一テーブルを参照していた場合、更新を掛けようとすると 、何かエラーが帰ってくるのでしょうか? 基本的なことで申し訳ありません。 どなたかアドバイスを頂けると、幸いです。

  • Accessで連続データってできますか?

    Aテーブル(データベース)からBテーブルに必要なレコードを抽出して、Bテーブルで編集しています。 Bテーブルで編集したレコードをCテーブルに移動する際に、連続データのフィールドが必要になったので、テーブルのオートナンバー型フィールドを一つ追加しましたが、うまくいきません。 追加クエリでB→Cに移動させるんですが、キー違反がでてクエリが動きません。 できれば、クエリで連続データを作成して、Cテーブルに追加させたいんですが、クエリで連続データって作れるものなのでしょうか?

  • Access2000について。

    Access2000にて、複数ユーザーが使用するような システムを作っています。 フォーム上からレコードを削除しようとした場合に、 他のユーザーがそのレコードを編集中 (レコードセレクタがエンピツの状態、テーブルへの 更新はされていない状態)かどうかを 取得して、もし他のユーザーが編集中であれば レコード削除は行わない、というような ことができるのでしょうか? アドバイス 宜しくお願いします。

専門家に質問してみよう