• ベストアンサー

ACCESSに同時アクセス(編集)をしたい

教えてください。 ACCESSのDBに複数のユーザが同時にアクセスして、 データを追加・編集したいのですが、 やはり、不可能でしょうか?

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

  • ベストアンサー
noname#21585
noname#21585
回答No.2

マイクロソフトのアクセスに同時に複数のユーザが同時にアクセスして データベースを操作することは可能です。いくつかの方法がありますが、 昔私が簡便に行なっていた方法は「テーブルのリンク」です。 あるコンピュータにアクセスでdb1という名前のデータベースを作って ここにデータを格納しておきます。 他方で別のコンピュータに、アクセスでdb2という名前のデータベースを作ります。 このdb2というデータベースのメニューで 「ファイル」->「外部データの取り込み」->「テーブルのリンク」 というのがありますから、最初に作ったdb1をたどり、リンクしたいテーブルを 選択します。 こうすることにより、db2にdb1のテーブルがリンクされ(リンクテーブルと 呼ばれます。アイコンが通常のテーブルと違います。)、db1に格納された データをdb2で編集することができます。 db2で、db1からのリンクテーブルを元にクエリーを作成することもできます。 リンクテーブルに対してできないことはテーブル構造の変更くらいで 他のことはだいたいできると思っていいかと思います。 このような形をとれば、ローカルエリアネットワーク内の複数のコンピュータ から同時に同じアクセスデータベースにアクセスすることは可能かと思います。 このやり方にはおそらく問題もあるだろうと思うのですが、昔私がやって いた頃は、特段支障もなく業務を行なうことができました。問題は、これを 読んだ他の誰かが指摘してくださるかと思います。 同じレコードに複数ユーザが同じタイミングでアクセスするとややこしい ことになります。これを回避するためには、db2にワークテーブルを備えておき、 リンクテーブルからレコードを一度db2に格納し、編集を終了したのちに リンクテーブルのレコードを削除し、ワークテーブルで編集したレコードを リンクテーブルに追加する、などのルーティンをマクロやVBAで構築するのが よいかと思います。私はそのようにしていました。 他に、ADOを使う方法などもあります。方法はいくつかありますから、 少し研究してみるといいですよ。(^-^)

00hiroto00
質問者

補足

ご回答ありがとうございます。 リンクテーブルのところまでは理解できました。 複数ユーザが、フォームを使ってデータを登録・編集するようにしたいのですが、 その場合、db2に対するフォームを作ればよいのでしょうか? また、同じレコードに複数ユーザが同じタイミングでアクセスする説明なんですが、 動作はわかるのですが、それを実行するためのマクロ・VBAが分かりません…。 すいません、初心者なもので…。

その他の回答 (3)

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.4

 #1 です。当方で再現してみました。  サーバー内に「db1.mdb(テーブル1)」を作成、パソコンA上のマイドキュメント内に「db2.mdb(テーブル1=リンク)」を作成、この「db2.mdb」をパソコンBにコピーし、パソコンAとBで同時にテーブル1への追加をしましたが、問題なくできました。  やってみて気付いたのですが、当方ではテーブル1を作成する際、主キーとしてはオートナンバーのフィールドを設けましたので、キーの重複が発生していません。  ひょっとして主キーのフィールドが手入力するようになっていて、かつ「重複なし」になっていませんか?

00hiroto00
質問者

お礼

わざわざ、ありがとうございました。 主キーの設定等は問題なかったのですが、 同じDBは操作できましたが、同じレコードにアクセスするときに問題が発生してました。 別の方法で一応、逃げ対策ではありますが解決しました。 ありがとうございました。

noname#21585
noname#21585
回答No.3

#2です。 >また、同じレコードに複数ユーザが同じタイミングでアクセスする説明なんですが、 >動作はわかるのですが、それを実行するためのマクロ・VBAが分かりません…。 動作が理解できるようでしたら、あとは確かにマクロやVBAを習得するのみです。 きっとイケますよ。フォームはdb2の中に作ってください。 残念ながら、マクロの組み方やフォームの作り方、さらにはVBAなどの詳しい 説明は、キリがないのでここではできませんし、とても1日2日で習得できるものでも ないかと思います。そういう意味で、先にお示しした方法は、00hiroto00様が 現在急を要するようですと、有効性が薄いです。ごめんなさい。 ただ、今後もアクセスをお仕事などに使っていかれるようでしたら、 こういったことをステップにして少しずつ知らなかったことをご自分の ものにしていかれると、スキルアップを図ることができるのではないかと 思います。 たいした回答もできませんですいませんでしたが、そんなところでお許しください。

00hiroto00
質問者

お礼

いえいえ、ありがとうございました。 VBAの使用ではないのですが、ひとまず問題は解決しました。 ありがとうございました。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

当方ACCESS2000ですが、  ツール→オプション→詳細  既定の開くモード=共有モード  既定のレコードロック=ロックしない  レコードレベルでロックして開く=オン これで実現できると思います。 他の方のために、バージョンなどを補足してください。

00hiroto00
質問者

補足

回答有難うございます。 私の使用しているバージョンもACCESS2000です。 回答いただいた設定を確認いたしましたが、 最初からそのような設定になっていました。 しかし、同時に二人のユーザで同じテーブル等に追加処理を行うと、 最後に編集した方に「どちらの変更を保存しますか?」と表示されてしまいます。 二人の編集を別々のレコードでそれぞれ追加できませんか?

関連するQ&A

  • 複数ユーザによる Access の同時使用について

    複数ユーザでAccessファイルを使用する場合の影響について教えてください。 <環境> データベースとなるAccessファイル(複数)は、共有のデータサーバ内にあります。 各ユーザは、各自が使用しているPCのAccessを起動して対象のAccessファイルを開き、編集・閲覧します。 全PCのOSはXP(SP3)、Accseeのバージョンは 2000 又は 2002 です。 誰かが開いている場合、レコードロック情報がエクスプローラに表示されるので、他の人にも使用中であることが分かるのですが、WordやExcelのように使用中である注記が表示されないので、これを確認しない人が使用する際に同時使用になってしまう可能性があります。 <質問> 1.あるユーザがファイルを使用中の時、他のユーザが編集を目的としてその使用中のファイルを開いた場合、後から開いたユーザは編集が可能でしょうか? 2.同時に開いている2ユーザがそれぞれ編集作業を行った場合、それぞれの内容は保存されますか? 3.同時に開いている2ユーザのうち、先に閉じたユーザが編集作業を行い、後に閉じたユーザが閲覧のみであった場合、先のユーザの編集内容は反映されますか? 基本的なことだと思うのですが、Access初心者であるため、理解できていません。 よろしくお願いします。

  • 同時編集防止の方法

    TakaoPRと申します。 現在、顧客管理リストを作成ようとしているのですが、テーブルへの同時編集の防ぎ方がわかりません。 DBはSQLSERVER2000でプログラムは、VB、ACCESSのどちらかを予定しています。 同時編集の防止というのは、複数が同時に編集できるのを防止したいという意味です。 誰かがテーブルのあるレコードを編集中の場合は、他の人もそのレコードの編集が不可能(閲覧は可能)にしたいのです。それ以外のレコードには、普通にアクセスができるようにしたいと思っています。 以上を実現するためのSQLSERVERの設定、またはプログラム手法などございましたら、ぜひアドバイスをお願いしたいと思っております。 宜しくお願い致します。

  • エクセルのデータをアクセスで管理したい。

    エクセルでかなり多くのデータを入力した(14000KB)ものをアクセスに取り込んで同じように管理することは可能なのでしょうか。 目的は複数人(約10人)で同時に編集することができるようにしたいためです。 エクセルデータは数式も多く、どんどん追加されています。 現在エクセルを開くだけで、かなり時間がかかっている状態です。 データも多く、同時編集もしたいので、アクセスで管理出来ればと思っています。 よろしくお願いいたします。

  • 共有Excelブックで同一シートの同時編集はOK?

    共同作業を行うため、Excel2003で作ったブックを共有設定し、複数ユーザーで同時編集できるようにしたいと思っています。 しかし、同一シートに同時にアクセスした場合に矛盾が発生しないかが懸念されるため、行っていません。 ただし、同一シートにはアクセスしますが、異なる行・または列を同時編集することはあっても同じセルを同時編集することはあり得ません。 この条件であれば、共有設定しても問題ないでしょうか。 宜しくご教示ください。

  • ACCESSのクエリの編集

    最近ACCESSを使い始めたばかりの初心者です。 クエリからデータの入力をしたいのですが、変更も新規のデータの追加もできません。どのようなクエリで編集が可能で、どのような場合に編集は不可能なのでしょうか?

  • access2010で共有でする

    access2003でDBを分割(テーブル=dbと他=pg)してpgをLAN経由でクライアントにpg_Accessを配布しLANDiscHDDのdb_Accessのテーブルにリンクさせていました。DBのプロパティ設定は、排他・編集済みレコードロックでした。しかし、access2010ではこの方法では、DBを共有してデータを追加・編集・削除ができません。 Web版にはしたくありませんので、良い方法があれば教えて下さい。私は初心者ですのでよろしくお願いします。

  • これもaccessファイルを共有している事になりま

    これもaccessファイルを共有している事になりますか? 1つのパソコン(vista)を複数のユーザーで共有し db1.mdbをパブリックのフォルダに置き ユーザー1ログオン時に、db1.mdbを開き ユーザーを切り替えて ユーザー2でログオンし、db1.mdbを開いてデーター入力することも 「アクセスを共有してる」 「db1.mdbを共有して使ってる」 という事になりますか?

  • アクセスデータの共有について

    アクセスのデータベースファイルを共有することについて質問です。 共有フォルダにDBを置き、「ツール」-「オプション」で共有設定にするということは分かります。 このDBを、ある特定のユーザは編集(データの入力・デザインの編集等)でき、他のユーザは読み取り専用で使用する(情報を閲覧するだけ)ということは可能なのでしょうか? よろしくお願いします。

  • 複数のDBを同時に開く事ができなくなりました

    Access2K/Win2Kを使っています。 これまで2・3種類のDBを同時に開き、同時使用していました。 (任意のデータをコピー&ペーストする必要が度々あり。) ハードディスクの故障もあり、何らかの理由で設定が変ったせいでしょうが、 複数のDBを同時に開く事ができなくなりました。 一つのDB-1を開いた後、DB-2を開こうとすると、フリーズした状態となり、DB-1を一端閉じてからでないとDB-2を開く事ができません。 DB-1とDB-2にはリンクが貼ってありますが、リンクの無いDB-3との関係も同じ問題が起きます。 設定をどのようにやり直したらよいのか是非ご教授お願いします。

  • 複数同時アクセスついて

    おはようございます。 PHPでブラウザ上でデータベースの更新するページを作成しました。 今、問題があって、Aさんがデータを更新するため、作業をしていて、その間にBさんも作業をするためページを開きました。 Bさんが作業終了してデータを更新して、その後Aさんが更新するといった形で複数同時アクセス時にデータの書き換えでこまっています。 こういった場合、編集ページを排他処理にしたいのですがどのようなものがありますでしょうか? すみませんがお願い致します。 参考になるページもあればお願い致します。

    • ベストアンサー
    • PHP