• 締切済み

Access共有について質問(2002-2007)

Access共有について質問 アプリケーション部とデータ部に分割したACCESSファイル(MDB)があります。 アプリケーション部のMDBはクライアントに配置して、 データ部のMDBは、クライアントがフルアクセスできる共有サーバー(WindowsXP)のあるフォルダに配置してます。 以下、環境と現象の御説明そして調べたこと、最後に質問する流れで記述したします。 ----------- ▼環境 ----------- ●クライアント環境(アプリケーション部) testApl.mdb  ・リンク先のtestDB.mdbのテーブルに対してのフォーム登録画面を介して編集を行う。 ●共有サーバー(データ部)  ・testDB.mdb ●クライアントが使用できるバージョンは、Access2002,2003,2007を対象 ●前提として、以下のセキュリティ設定を行っています。  ★IE7→(1)「ツール」→(2)「インターネット オプション」→(3)「セキュリティ」→(4)「イントラネット」  →(5)「サイト」→(6)「詳細設定」→(7)「このWeb サイトをゾーンに追加する」→(8)「追加(A)」  で、共有サーバーを設定  ★Access2007環境のクライアントでは、  →(1)左上のOfficeボタンからメニューを表示→(2)中央下にある「Accessのオプション」をクリック→(3)「セキュリティセンター」を選択  →(4)「セキュリティセンターの設定」をクリックして、信頼できる場所に、testApl.mdbおよびtestDB.mdbのパスを設定。 ●共有するにあたり、参考にしている文献 http://office.microsoft.com/ja-jp/access/CH062526671041.aspx http://technet.microsoft.com/ja-jp/library/cc984213.aspx ----------- ▼現象 ----------- Access2002環境のクライアントがtestApl.mdbを開いてテーブルを更新した後、 そのままの状態で、別のAccess2007クライアント環境からtestApl.mdbを開き、 登録(更新)又は削除すると失敗する。 たとえば追加の場合 "登録中に例外エラーが発生しました 詳細:更新可能なクエリであることが必要です" ----------- ▼調査1 ----------- Access2002環境のクライアント(VISTA)がtestApl.mdbを開いている状態で (1)直接、Access2007クライアント(XP)環境のtestApl.mdbのリンクテーブルを開き、 表のセルにロックかかっている状態になっている(編集不可) (2)直接、Access2007クライアント(XP)環境から共有のtestDB.mdbを開くと、 ”読み取り専用”で開く (3)Access2007クライアント(XP)環境からVBS(WSH)で以下のプログラムを実行すると、Openで失敗する。 (既にMDBが開かれているような旨のメッセージ表示される) DataSource=共有サーバーのパス\testDB.mdb Set Con = WScript.CreateObject("ADODB.Connection") Set Rst = WScript.CreateObject("ADODB.Recordset") Con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DataSource & ";Persist Security Info=False"] ----------- ▼調査2 ----------- Access2002環境のクライアント(VISTA)がtestApl.mdbを閉じた状態で (1)直接、Access2007クライアント(XP)環境のtestApl.mdbのリンクテーブルを開き、 表のセルにロックかかっている状態になっている(編集不可) (2)直接、Access2007クライアント(XP)環境からtestDB.mdbを開くと、 ”読み取り専用”で開く (3)Access2007クライアント(XP)環境からVBS(WSH)で以下のプログラムを実行すると、Openは成功する DataSource=共有サーバーのパス\testDB.mdb Set Con = WScript.CreateObject("ADODB.Connection") Set Rst = WScript.CreateObject("ADODB.Recordset") Con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DataSource & ";Persist Security Info=False" (4)すべてのクライアント環境から、testApl.mdb、testDB.mdbを開かない(閉じてる状態) にしても、共有にあるtestDB.mdbのldbファイル(testDB.ldb)が残っている。 試しに、testDB.ldbを削除しても、すぐまた出来てしまう。(何故?) ----------- ▼質問 ----------- 1、現象の改善方法教えてください。 2、調査2の(4)のldbファイルが何故すぐ復活してしまうのでしょうか?何かプロセスが残っているように感じますが、タスクマネージャーで見る場合、何を手掛かりに探せばいいのでしょうか? ----------- 説明不足しているところありましたら、ご連絡ください。 調べ方に対してのアドバイスおよびヒントでもかまいません。 問題解決に藁をもすがる思いです。 宜しくお願いいたします。

みんなの回答

  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.1

何となく、Access2007の内部処理の一種の「バグ」のような気がする んですが。クライアントが全てXP/2003環境だとどうなんですかね。 Office2007はファイルをXML化しちゃった関係で、Accessに限らず 別バージョンとデータ共有をすると、たまにわけの分からないエラー が出るみたいですので。 あと、こういう質問は以下のような専門家が集まるサイトのほうが ヒントが得られる可能性が高いですよ。こちらには私もしばしば お世話になっていますので。 http://www.moug.net/

obata77
質問者

お礼

こんにちわ。 回答、ありがとうございます。 まだ2003は確認していないのですが、すべて2007だと問題が発生しておりません。また、すべて2002の場合も問題ないです。 すべて2003とXP/2003は、これから環境つくって確認してみます。 ldbファイルについては、USBとネットワークの違いがありますが、類似する問題が以下のところでとりあげられておりますが、解決には至ってないようです。これは、Accessの問題ではなくサーバーの問題かもしれません。 http://www.accessclub.jp/bbs/0133/beginers44466.html

obata77
質問者

補足

追記 2台のクライアントでAccessのバージョンを変えながら、 テストしました。 (1台のPCに3種類のOfficeをインストールしています。http://www.atmarkit.co.jp/fwin2k/win2ktips/847office/office.htm) CLI(OS XP) CLI(OS VISTA) 2002 2002 OK 2003 2002 OK 2003 2003 OK 2002 2007 NG 2003 2007 NG 2007 2007 OK 低いバージョンで保存した後、2007で更新すると現象発生するようです。 また、2007更新のタイミングで、LDBファイルが残ったままになります。そのあと、全クライアントを再起動し、残ったLDBファイルを削除しても一瞬消えたようにみえますが、すぐ同じタイムスタンプで作成されます。 また、NGの現象が発生しLDBを残したまま、クライアントからMDBを開く際、異常に遅くなります。

関連するQ&A

  • Access2007でldbファイルが消えず困っています。

    Access2007でldbファイルが消えず困っています。 環境 OSはXP(SP2) … サーバ/クライアント共 Office2007Pro … サーバにはインストールしてません SQL server2000 ウィルスバスター2011 Pc-Anywhere クラサバの環境で、サーバ側にデータを、クライアント側にはプログラムを配置しています。 5台のクライアントからサーバのデータを更新しています。 (サーバはデータ.mdbを、クライアントはプログラム.accdb) 困っているのは、何らかのタイミングでldbファイル(mdbを起動したときに勝手に立ち上がるもの)が消えなり、サーバの電源を入れ直して、ldbファイルを削除しない限り、システムが機能しなくなることです。 一応、データを書き込んでいるときは、ldbが発生し、書き込みが終わるとldbが消える動作をきちんとしていることを確認しています。が、何らかのタイミングでldbが消えないことがあるんです。 本来はaccess2000で作成したものでしたが、マシンの入れ替えに伴いaccess2007に変更しました。 access2000の時は排他ロックなど掛かったことはなかったんですが2007に切り替えた途端、この有様です。 元々は、データ.mdbはデータ.accdbだったんですが、頻繁にロック(読取専用)が掛かるので、苦肉の策でデータ側のみ2003形式にダウンさせました。そうしたところ、ロックが掛かる回数は激減しましたが、それでも1日に1・2回程度は排他ロックが掛かり、サーバの電源入れ直し、ldbファイルの削除をしている状況です。 原因がはっきりせず困っております。 システムが機能しなくなるのは、業務がストップしてしまうことなので、とても焦っております。 Accessに詳しい方、良いお知恵を拝借願います。 ※ mdbの名称は仮称です。

  • Accessを共有できません

    会社の共有サーバに、ワードやエクセルで作ったデータを保存して10人ほどの社員で使っています。(クライントPCはXPです) 同じようにAccessで簡単なデータベース(ファイル名.mdb)を作り、共有サーバに保存しましたが、どのクライアントPCからも開けません。 自分のPCでは開けました。これでは共有サーバの意味がありません。 Accessはワードやエクセルのようにはいかないのでしょうか?ご存知の方がいらしたら、お教えください。

  • Accessが共有できません

    会社の共有サーバに、ワードやエクセルで作ったデータを保存して10人ほどの社員で使っています。(クライントPCはXPです) 同じようにAccessで簡単なデータベース(ファイル名.mdb)を作り、共有サーバに保存しましたが、自分のPCも含め、どのクライアントPCからも開けません。 これでは共有サーバの意味がありません。 Accessはワードやエクセルのようにはいかないのでしょうか?ご存知の方がいらしたら、お教えください。

  • Accessファイルの共有について

    一台のサーバーPCと数十台クライアントPCでLANを組んでいます。サーバーPCのOSはWindows2003でクライアントはWindoesXP若しくはWindows2000です。 ここで、質問はAccess2000のmdbファイルの共有についてです。 サーバーの共有フォルダーにあるmdbファイルをクライアントで共有で使っているのですがうまく開かないことがあります。具体的には数台のクライアントPCからはサーバーの共有フォルダーをクリックするとログオンパスワードを聞いてきますので入力するとそのフォルダーが開き、mdbファイルをダブルクリックするとファイルが開きます。しかし、他のクライアントPCからはこの方法では開きません。クライアントPCで先にAccess2000を起動させえておき、そこからファイル→開く→マイネットワークと進みます。そしてパスワードを入力してログオン完了後、該当のmdbをクリックすると開きます。 なぜ、このようなことが起こるのかわかりません。後者の方法だとショートカットも張れないし不便を感じています。すべてのクライアントPCから前者の方法でmdbファイルを開きたいのですが何か設定が必要なのでしょうか。 各クライアントPCからサーバーへはPingが通りますのでネットワーク的にも問題はないように思えるのですが、アドバイスお願いできますでしょうか?

  • Accessでファイル共有

    質問させていただきます。 環境はクライアント3台(Xp Pro、すべて同じ機種)、サーバー1台(Win Server2000)、LAN100BASE-TXです。 Access2002で販売管理をつくり、プログラムMDBは各クライアント、データMDBはサーバに置き、それぞれのクライアントがリンクするようにしています。 そこで、2台以上で利用する場合、動作が遅くなります(たとえばフォームを開くのに10秒くらい)。 この環境では仕方ないのでしょうか?それとも改善できるのでしょうか?MSDEへ置き換えれば改善できるのはわかりますが、現状の環境で改善できればベストです。 以上、よろしくお願いいたします。

  • アクセスからのデータ読み込み

    初めて質問します。  現在ホームページで、アクセスDBからデータを読んで、 それに対して更新する処理を作ってますが、 どうもSQL文を発行するとエラーになってしまいます。  その処理自体は今まで動いてたのですが、サーバを新しいのにしたら動かなくなってしまいました。(-_-;) 以前この処理を作った人が消えてしまい、誰に聞いても 分かりません・・。  どこがいけないのか分からないので、皆さん助けて下さい!!m(__)m 一応ロジック書いときます。 ************************* Set Con1 = Server.CreateObject("ADODB.Connection") Con1.Open "****" Set CTemp = Server.CreateObject("ADODB.Command") Set Rec1 = Server.CreateObject("ADODB.Recordset") sSql="SQL文" CTemp.CommandText = sSql CTemp.CommandType = 1 Set cmdTemp.ActiveConnection = Con1 Rec1.Open CTemp, , 0, 1 *************************  エラーは、[Set cmdTemp.ActiveConnection = Con1] で起こります。 以下がエラーメッセージです。 ************************* 予期しないエラーです /mente/menu/A.asp 外部オブジェクトでトラップできるエラーが発生しました。スクリプトの実行を続行できません。 ************************* 誰か助けて下さい!!(T_T)

  • サーバー共有フォルダへのアクセスについて

    お世話になります。現在、以下の環境で共有フォルダを利用しています。 サーバー:Windows2003standard edition クライアント:Windows XP Home edition サーバに共有フォルダを作成し、クライアントより使用。 問題: 数台のクライアントPCのうち一台が共有フォルダへアクセスできない。 現状: サーバーへのユーザ設定、フォルダ共有設定へのユーザ追加は他の正常にアクセスできるクライアントマシンと同様です。 唯一違う点はアクセスできないクライアントはServicePack1です。 (アクセスできるクライアントはServicePack2) 同じような問題を抱え解決した方、または具体的にアドバイスできる方からの回答をお待ちしております。

  • ACCESSの共有モードについて

    お世話になっています。 ACCESS2000のmdbファイルをネットワークディスクに入れ2~3人ぐらいで共有しています。 但したまに、排他モードの警告が出て同時に開けない(閲覧できない)ことがあります。 何も設定変えていないのに共有できる事もあります。 共有する為にACCESSで管理したのにも関わらず、 同時に開けないのは不便です。 原因がわからず困っています。 OSはWin2000とXP混在です。

  • 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 読み取り専用のアカウントでは開かない

    Access2003 サーバーPC OS:WinXP Pro アカウント名:suzuki, tanakaが登録してある 共有フォルダ:営業資料 DB名:顧客データ.mdb クライアントPC1 OS:Win7 Home アカウント名:suzuki DB名:顧客.mdb クライアントPC2 OS:XP Home アカウント名:tanaka DB名:顧客.mdb 顧客データ.mdbはテーブルのみ 顧客.mdbはフォーム、クエリ等があり、顧客データのテーブルにリンクを貼っています。 共有フォルダ「営業資料」には アクセス可能ユーザーに「suzuki」、「tanaka」を設定しました。 共有のアクセス許可でsuzukiは「フルコントロール」設定を、tanakaは「読み取り」のみ設定をしています。 この時クライアントPC1では顧客データに読み書きできますが、 クライアントPC2からアクセスすると、「顧客データ.mdbは既に使用されているので、使用できませんでした」 メッセージが表示されます。 共有のアクセス許可を「フルコントロール」に設定すれば読み書きできます。 クライアントPC2から「読み取りのみ」でアクセスすることはできますか? 宜しくお願いします。

専門家に質問してみよう