• ベストアンサー

Access2002、排他?

Windows2000Serverにmdbファイルを置いて、各端末からアクセスできるようにしたいのですが、一人が開くと他はひらけないようにするにはどうしたらいいですか? 宜しくお願いします!

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

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

ADOを使って排他モードで開くようにすれば良いのではないでしょうか。 adModeShareExclusiveで完全に排他で開くはずです。 Option Explicit Dim cnn As ADODB.Connection Dim rec As New ADODB.Recordset Private Sub cmdGO_Click() Set cnn = New ADODB.Connection ' 排他モードで開く cnn.Mode = adModeShareExclusive cnn.Open "Provider=SQLOLEDB;" & _ "Data Source=(local);" & _ "Initial Catalog=Test;", "sa", "" rec.Open "select * from TestDB", cnn, _ adOpenKeyset, adLockOptimistic End Sub この様な記述で良いと思いますが参考になりますでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Accessの排他問題

    Accessの排他について質問です。 現在、データベースサーバにAccessを使用しています。 そこでクライアント端末から複数のアクセスが生じた場合の排他の対処法を教えてください。 ODBCでリンクしようとしたのですが通常、MS-Access では、Access 自身のデータベース(MDB) を ODBC を介してリンクする事は出来ない仕組みになっているそうです。 なにか良い解決策はないでしょうか?

  • Accessの排他制御をどのように行うべきか

    いつもお世話になっております。 Windows2000 Access2002、またはAccess2000にて、 複数のPCで、サーバにおいてあるmdbファイルを使用するシステムを開発する場合、 (例えば、スタンドアロンで使用していたシステムを複数のPCで使用することになったと仮定します。 また予算の都合上、Oracle、SQL Serverなどは使えないものとし、各PCにAccessがインストールされます。 ) 排他制御を行うために、Accessで排他モードで開いて使用するという対応というのは、問題ないのでしょうか。 データが破損する可能性があるということをよく耳にするのですが、 過去に上記の対応を行われた方がいらっしゃいましたら、その後の運用で問題は発生しなかったか(ファイルが壊れる事はないのか)、 過去に壊れた事象をお持ちの方がいらっしゃいましたら、どのように対応されたのか、 別の対応方法をとられていらっしゃる方は、その対応方法を ご教授いただけないでしょうか。 プログラムでデータの破損を退避できるのであれば、上の対応と併せて開発できそうな気はするのですが、、 ご回答、よろしくお願いいたします。

  • Accessでの排他制御

    アクセスの排他制御に関して質問です。 ネットワーク上のサーバーにアクセスのMDBを置いて、複数の人が更新目的で開く場合、排他制御はどうなるのでしょうか? テーブル単位で、ロックが掛かるのでしょうか? もしそうであれば、複数の人が同時に使えないのですが、回避策はありませんでしょうか?

  • ファイルサーバ上にあるAccessが開けません

    初めて質問させて頂きます。 Windows server2003で、ファイルサーバ上にあるAccessファイルを開けなくて困っています。 Windows server2003をWebサーバに設定をしているところです。 作成したWebサイトから、ファイルサーバ上にあるAccessのデータを見たいのですが、 「ファイル '\\Nas3\users\DB.mdb' を開くことができませんでした。ほかのユーザーが排他的に開いているか、データを読み取る権限がありません。」 とエラーが出てしまいます。 原因を調査していたら、そもそもWindows serverから該当のAccessファイルを開けないことがわかりました。 ファイルサーバ上のAccessを開こうとすると、以下のエラーが出てしまいます。 「指定されたデバイス、パス、またはファイルにアクセスできません。 アクセス許可がない可能性があります。」 開けないのは、Accessファイルのみで、ファイルサーバ上にあるExcel等の他のファイルは開けますし、編集もできます。 Windows server上にAccessファイルをコピーすると開くことができますが、 作成したWebサイトから開こうとすると、テーブルのリンクが貼ってあるためか、上記のエラーになってしまいます。 Accessは2000を使用しています。 インターネット等で2日間くらい調べていますが、どうしたらいいのかわかりません。 どなたかご教授お願いします。

  • accessのロック

    以前も質問したことがあるのですが、再度質問させていただきます。 Accessのロックについてです。 Windows2003Sever + Microsoft SQL ServerのマシンにあるMDBファイルを置いてあります。 これに社内LANでつながっているwindowsXP+access2000マシン10数台が それぞれWindows2003サーバマシンのmdbファイルのテーブルにリンクしているmdbファイル持っていて日々データの閲覧と更新をしています。 その際時々Access2000が以下のような以下のようなWindowメッセージを出します。 「現在ロックされているので、更新できませんでした。」 この件で困っております。 いくつか、わかっていることがあります。 ◎Windows2003Serverのこのmdbにアクセスしている人が多い時にこのメッセージが出るわけではない。使用者が2人でも出るときがある。 ◎同じフィールドへの同時書き込みの場合は他のユーザによって変更されています。。。のようなメッセージが出るので同時書き込みの問題ではなさそうだ。 ◎ロックがかかった場合、接続ユーザーみんなが開いているmdbを閉じて再度開くとロックは解除されている。 ここで質問なのですが、 ・ロックはなぜかかるのでしょうか? ・ロックの回避方法はありますか? 以上、どうかよろしくお願いいたします。

  • Accessのファイルがエラーも出ずに開けません。

    社内のサーバ上にあるmdbのファイルを開こうとしますが、クリックしても反応がありません。 他の人が使ったりはしていません。 今までは開けたんですが、パソコンを変えたところ開けなくなりました。前のPCも新しいPCもWinXPで、Office2003が入っています。 サーバの管理者に確認したところ、アクセス権の問題ではないようです。 デスクトップ上にコピーすると開くことが出来ます。 他の人は普通にサーバ上のmdbファイルを開くことが出来ていますので、ファイル自体が壊れているわけではなさそうです。 よろしくお願いいたします。

  • MS Accessを共有した際にファイルが壊れるのを回避する方法

    ちょっとしたツールをAccessで開発したいのですが、 Accessファイルを共有するとファイルが頻繁に壊れると伺いました。 そこで以下のような回避策を考えてみたのですが、 効果はありますでしょうか。 これでは、あまり意味がないとか、他に注意したほうが良い点等ありましたら、アドバイスいただければと思います。 なお、ツールは、50名位が使用(同時アクセスは3名~4名程度)予定で、 サーバ上にメインのmdbファイル(以下「サーバmdb」)を、各クライアントにもそれと連携するmdbファイル(以下「クライアントmdb」)を置くことを想定しています。 (1) データは全てサーバmdbで保持する。クライアントmdbには、入力用のフォームと、サーバmdbから取得したデータを一時的に保持するテンポラリのテーブルを持つ。 (2) クライアントmdbからサーバmdbにアクセスし、必要なデータをクライアントmdbにインポートする。 (3) クライアントmdbで、取り込んでデータをもとに、データの追加・修正を行い、当該データをサーバの所定のディレクトリにCSVで出力する (4) サーバmdbは、日次で、所定のディレクトに配置された、クライアントmdbから出力されたファイルを読み込み、データを更新する (5) (4)の読込み・更新作業中は、クライアントmdbからサーバmdbにはアクセスしない(外部ファイルで制御) 以上です。 要は、クライアントmdbが、直接サーバmdbを更新しないようにし、参照のみにするということです。 よろしくお願いします。

  • Accessの有効なメンテナンス方法は

    現在Accessで会社の業務アプリケーションを作成しています。 ファイルサーバのフォルダに作成したmdbファイルを置き、各クライアントには、デスクトップにmdbのショートカットを配置してあります。 しかし、最近mdbのサイズが大きくなり、たまにファイルが破損するという現象が起きるようになりました。 そこで、mdbをテーブルとそれ以外に分け、テーブルのみのmdbをサーバに置き、テーブル以外のmdbをそれぞれのクライアントにコピーしました。 これで少しは改善すると思うのですが、この業務用アプリケーションはかなり頻繁に改良/修正が行われます。今までは、サーバに置いてあるmdbを修正するだけで良かったのですが、今回各クライアント(20台)にテーブル以外(クエリ・フォーム・レポート等)のmdbをコピーして運用しているので、一度修正が発生すると、この各クライアントのmdbを更新しなければなりません。 これはかなり手間がかかってしまうので、なんとか違う運用方法がないか、いろいろ検討しています。 実際に作業するのは私一人です。 一人でも20台のクライアントのmdbを簡単に更新できる方法はないでしょうか。 宜しくお願いします。

  • ACCESS2003のデータアクセスページの使い方について

    イントラ内でACCESS2003のデータアクセスページを使いたい。 1.ACCESS2003のデータアクセスページを作成しました。 2.そのMDBファイルと、データアクセスページ(htmファイル)を、WINDOWS2000ServerのInetpub内のwwwrootフォルダの中へ入れました。 3.ここにはイントラ内のHPなどを置いています。(普通に見れています。) 4.クライアントから、データアクセスページのhtmファイルを見に行くと「データソースログオン」が立ち上がります。(パスワードを設定しています。) 5.パスワードを入れるとデータアクセスページ(htm)から、通常のアクセスのフォームのごとくデータ入力が出来る予定なのですが(泣)できません。(泣) で、悩んでおります。 ACCESS2003のMDBファイルとデータアクセスページ(HTMファイル)をサーバーのwwwrootへ置いただけでは、データアクセスページを通してmdbファイルへの入出力は不可能なのでしょうか?

  • Accessのセキュリティ対策

    Accessで業務用のアプリケーションを作成し サーバ上の特定のフォルダに置いてあります。 ファイルはmdbファイルです。 テーブルもクエリもフォームもレポートも 何もかも一つのmdbファイルの中にあります。 そして、各クライアント(約15台)のデスクトップに サーバ上に置いてあるmdbファイルのショートカットを 配置し、各自に利用してもらっています。 サーバ上の特定のフォルダは 言ってしまえば社員であれば誰でも見れることが できるフォルダなので、mdbファイルを削除または コピーすることが可能です。 同じようにAccessで業務アプリケーションを作成し その中に重要なデータを格納してある場合、 どのような対策を講じていますか アドバイス宜しくお願いします。