• ベストアンサー

ACCESSを会社内でネットワークして使用する時の問題点

会社内でデータベース管理の為、現在エクセルにて管理している顧客情報をACCESSに変えた方が良いのではないかという話になりましたが、不明な点がありましたので教えてください。OSはすべてWIN2000です。 社内では10台のPCがネットワークされており、毎日500人の新規入力作業が発生しそうなので、できれば3人くらいで新規入力作業ができればと考えておりまして、 1台のマスターPCのACCESSを使う場合、  1.同時に入力は可能でしょうか?  2.顧客のID-NOのダブりは発生しませんか?  3.マスターPCへの負荷、その他不具合は? 3台のPCのACCESSを使う場合、  1.マスターに統合するときの顧客のID-NOのダブりは発生しませんか?  2.その他不具合は?  

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

  • ベストアンサー
noname#2685
noname#2685
回答No.5

まず、トランザクションを説明します。 「銀行振込」を例にとりますと、 ・ 振込元から振込金額を引く ・ 振込先に振込金額を足す のふたつはセットで処理をしなければなりませんよね? 万が一振込先の DB で何らかのトラブルがあり足し込めなかった場合、既に完了している振込元の処理を戻さねばなりません(ロールバック。 このような DB に対するひとまとめの処理をトランザクションと呼びます。 次に MSDE / SQL Server / Oracle などの違いですが、 これらはすべて「DBMS(Database Management System)」です。トランザクション処理など、データベースを高度に管理しています。これらが DB を管理するエンジンとなりクライアントは DBMS に DB 操作を依頼します。 Oracle は非常に成功した DBMS で、大規模 DB 用途では事実上の標準になっていました。 それに対抗して Microsoft が SQL Server を開発し、MSDE はそのサブセットです。 他方、MDB(Access) は個々のクライアントがそれぞれ勝手に DB を操作するしかなく、DBMS が提供してくれるようなサービスをプログラム的に用意する必要がでてきます。 今回の件では、 「MDB は複数トランザクションに弱いですよ」 「だから Access でやるにはエラー処理をしっかり」 「でもそらなら MSDE を使った方が」 となったワケです。 物理的な破損は「エラー処理」では回避できませんが、 発番テーブルに歯抜けありで次々 ID-NO を追加するような運用にし、 1) 発番テーブルを読む 2) +1 して「処理中」フラグを立ててレコード追加 3) ダブりが生じて 2 の処理がエラーになる 4) 再度 1)~2) の処理を行う 5) 3 の処理が正常に進めばローカルな処理をする 6) 発番テーブルの「処理中」フラグを下ろしレコード修正 など、なるべく共用している DB を操作する時間を少なくするような作りを検討されると良いと思います。

fxnana
質問者

お礼

ご連絡遅くなり申し訳ありませんでした。 私は、あまり理解できませんでしたが、技術担当者に聞いたら よくわかったとの事でした。 おそらく、MSDEを使うことになりそうです。 ありがとうございました。

その他の回答 (5)

回答No.6

ページ + トランザクション

noname#2685
noname#2685
回答No.4

まず、#3 temtecomai 氏のおっしゃることは事実であり、Access は同時アクセスに非常にセンシティブです。 ただ、初めて開発される場合などは特にですが MSDE にはそれなりの壁があり、情報量が多い Access を選択なさるなら下記の事項にご注意なさるべきです。 あくまでも、蛇足ですが(^^;。 恐らく「テーブルのリンク」によるファイル共用になるでしょう。その際、 「必ず定期的にバックアップを取るシステム・運用にする」 ことは必須です。 そして、 「ID-NO の重複などのエラー処理を最大限に考慮する」 仕組みが必要です。 具体的には ・ 発番テーブルにテーブルロックをかける(非現実的かも ・ 発番テーブルにフィールドを追加し「発番中」などのステータスを持たせる ・ ID-NO の「歯抜け」は許容する(発番開始後のキャンセルなど ・ 「ID-NO が重複しています」などのエラーを出す など、他にもいろいろ検討されると良いと思います。 本当に Access は複数トランザクションに弱いです。 しかしそれは、同一テーブル・同一フィールドに対するときにいっそう顕著です。 従って、いかにそれを回避するか、エラー処理をきちんとするか、で耐性は大きく変わります。 どのみちエラー処理は避けては通れませんし。 弊社では 20 万レコードの MDB を同じく 3 台の PC から共用していますが、幸いなことに 1 度も MDB の破損を経験していません。 もちろん、新規に開発されるなら MSDE や SQL Server もっと言えば Oracle などが理想でしょう。 しかし案件によっては Access でもキチンと頑張ればそれなりに可能です。 # 単に過去の資産を流用したいがための自己弁護かも。。

fxnana
質問者

補足

ご回答ありがとうございます。 >本当に Access は複数トランザクションに弱いです。 >しかしそれは、同一テーブル・同一フィールドに対するときにいっそう顕著 >です。 >従って、いかにそれを回避するか、エラー処理をきちんとするか、で耐性は>大きく変わります。 >どのみちエラー処理は避けては通れませんし。 すみません。NO.3でもでてきましたが、トランザクションとは、例えば同一テーブル・同一フィールドに、3台のPCが同時に開いた時という理解でよろしいんでしょうか? その時はエラーメッセージを表示することで回避できるということでしょうか? >もちろん、新規に開発されるなら MSDE や SQL Server もっと言えば >Oracle などが理想でしょう。 >しかし案件によっては Access でもキチンと頑張ればそれなりに可能で >す。 よろしければ、ACCESSとMSDB、SQL Server、Oracleの違い、利点など簡単に教えていただければ幸いです。

noname#102878
noname#102878
回答No.3

Accessというか、Accessの*.mdbファイルでの開発はやめましょう。 以下理由 ・同時アクセスに弱い MDBファイルの弱点はこれに尽きると思います。 同時に書き込みが発生すると脆いです。 更に言えば、MDBファイルの場合は「ファイル共有」という形式になりますので、データベースそのものを管理するのは個々のクライアントにインストールしてあるAccess.exeになるわけです。 PC-AとPC-Bがファイルサーバ上の同じMDBファイルを開いた場合、それぞれのAccess.exeがお互いを無視してMDBファイルを開いて操作します。 ということで、Access2000か2002であればMSDEを使ってください。 マイクロソフトの SQL Server というサーバ製品の簡単バージョンです。 マスターPCにMSDEをインストールし、DBを置き、クライアントのAccessからDBを操作します。運用時の操作間隔は今までと変わりません。 ただし、MSDEがDBを管理しますので複数のクライアントが同時にDBを操作しようとしても一貫した管理ができます。 トランザクション処理もできます。 ID-NOの管理ですが、 最終IDを保持するテーブルを用意します。 新規顧客を追加する直前にトランザクションを開始。 IDを読み込む。 IDに1を加えた値で先ほどのレコードを更新。 その値を顧客IDにした新規顧客のデータを顧客テーブルに追加。 トランザクション終了。 とすればダブらないと思います。 ここら辺は仕掛けと手順を工夫すれば従来のMDBファイルでも可能ですが・・・

fxnana
質問者

補足

ご回答ありがとうございます。 >ということで、Access2000か2002であればMSDEを使ってください。 >マイクロソフトの SQL Server というサーバ製品の簡単バージョンです。 >マスターPCにMSDEをインストールし、DBを置き、クライアントのAccessから>DBを操作します。運用時の操作間隔は今までと変わりません。 >ただし、MSDEがDBを管理しますので複数のクライアントが同時にDBを操作し>ようとしても一貫した管理ができます。 >トランザクション処理もできます。 すみません。Accessのバージョンを記載してませんでした。ACCESS2000になります。 SQL Server 2000 対応アップデート をするということでしょうか? その中のMSDEをインストールするんですよね? トランザクション処理というのはよくわかりませんので、教えてください。

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.2

ID-NOの発番用テーブルを用意すれば良いのではないでしょうか。 たとえば初期値が100として、最初に登録を開始した人は100番台を使用し、同時に200番に更新しておく。 次に登録を始めた人はテーブルの値から200番台を使う、といった具合に。もちろん300番に更新をかける。 プログラムでやっても良いですし運用にしてしまっても良いと思います。

fxnana
質問者

補足

ご回答ありがとうございます。 質問したあとに私も思ったのですが、例えば、AのPCで入力する場合は、ID-NOをA00001から入力していき、BではB00001からという形で入力したらどうかと思ったんですが、そういう理解でよろしいんでしょうか?

noname#3345
noname#3345
回答No.1

実際にアクセスonlyでのデータベースを作ったことがないので、不具合等は詳しくないですが、1台のPCで複数入力をするにしても、複数PCを後でひとつにまとめるにしても、作り方次第だと思いますよ。 1台のPCで行う場合、 1.同時入力は可能です。 2.顧客IDのダブりは作り方次第です。  ダブらないようにキー設定をするとか、更新前にIDチェックを行うとか、プログラム手法で回避できるはずです。 3.マスターPCは、他に使われるんでしょうか?  常時別の人が使用しているPCであれば、負荷がかかるかもしれませんが、3人がアクセスして一日で500レコード更新くらいであれば、よほどスペックが悪くない限り大丈夫だと思いますけど。  もっと更新数の多いプログラムを作ったという話を聞いたことがありますよ。 3台のPCでアクセスを使用する場合ですが、これは別PCのデータを後で統合するということですよね? であれば、こちらもまとめるときの更新方法次第だと思います。>顧客IDのダブり いずれにしても、アクセスだからどうこうという問題ではなく、プログラムの作り方に気をつければいいという問題だと思います。

fxnana
質問者

補足

ご回答ありがとうございます。 >2.顧客IDのダブりは作り方次第です。 > ダブらないようにキー設定をするとか、更新前にIDチェックを行うとか、 >プログラム手法で回避できるはずです。 キー設定の仕方はどうすればできますか? また、IDチェックとはどういうことでしょうか? >3.マスターPCは、他に使われるんでしょうか? > 常時別の人が使用しているPCであれば、負荷がかかるかもしれませんが、 >3人がアクセスして一日で500レコード更新くらいであれば、よほどスペック >が悪くない限り大丈夫だと思いますけど。 マスターPCは、sotecのCPU celeronの1.1G、メモリ260M、HD28.6G×2です。マスターPCは他にメールの送受信、ネット接続、ワードなどによる書類作成に使います。 >いずれにしても、アクセスだからどうこうという問題ではなく、プログラム >の作り方に気をつければいいという問題だと思います。 プログラムの作り方で注意する点があれば、ご教授いただければ幸いです。

関連するQ&A

  • エクセルやアクセスを複数でネットワーク使用する場合の注意点

    エクセルやアクセスで業務日報や顧客管理をしようと思います。 人数は30程度の規模です。 プログラムを共有にし、従業員がネットワーク経由で入力する場合、複数の人が同時にそのファイルを開くことになります。 その場合でも大丈夫なんでしょうか? きちんと各人の入力内容が保存されるのでしょうか。 なにか特別なことをしなければなりませんか?

  • ネットワークへのアクセスについて

    ワークグループでサーバー1台(WinXP Pro)とクライアント3台(A, B, Cとします。いずれもWin2k)があったとして、サーバーのDirというフォルダを共有していたとします。サーバーのコンピューター管理でDirフォルダへのアクセスアカウントとしてID:access、PASS:X、ID:user1、PASS:Yという2つを作成しているものとします。クライアントPC-AからID:accessでDirへログインしたものの、ID:user1でログインし直したい場合、PCを再起動せずに再ログインしたい場合はどうすればよいのでしょうか?一度DirへログインしてしまうともうID、PASSを聞いてくれなくなるので別のアカウントでのログインのし直しをするためにPCを再起動しています。ご存知の方いらっしゃいましたらご教示下さい。

  • 小さな会社でのACCESS

    いつもお世話になっています。 小さな会社で、私一人で事務をしています。 PCは1台、データーを扱うのは私しかいないので、ACCESS2003でデーターを管理していました。 この度もう1台PCを購入し、無線LANでネットワークを共有することになりました。 あまりネットワークに関する知識がなく、質問させていただきました。 一つは、ACCESS2003から2007に以降する予定なのですが、その場合今まで作成したACCESSファイルを、2007のファイル形式に変換することは可能でしょうか?またその場合、VBAなどももう一度作り直さなくても正常に作動するのでしょうか? もう一つは、今まで同様データを扱うのは私だけなので、同時にデータベースにアクセスすることはないのですが、もう1台のPCからは、データーを”見る”作業だけはする事になります。 ACCESSは同時アクセスに弱いといいますが、同時にアクセスすることがほとんどなければ、共有してもデーターベースが破損することはないのでしょうか? また、1台にACCESS2007を購入し、もう1台は”見る”だけなのでランタイムというもので可能だと聞きました。ACCESS2007からは、無料配布だそうで、ライセンスにもひっからないと聞きましたが、こちらも問題ないのでしょうか? また、ランタイムというものを”見る”だけのPCにインストールすれば、共有してあるACCESSのファイルを見ることが出来るという認識でよろしいのでしょうか? 知識がなく質問ばかりになってしまいましたが、よろしくお願いいたします。

  • ファイルの共有 ネットワークリソースを使用するアクセス許可がない

    社内LANで繋がっているパソコンで、ファイルを 共有しています。問題が発生し解決できないので 教えて頂きたいです。 何台かのPCでファイルを共有して使っているのですが、 ある1台のパソコンで共有になっているフォルダーの 中に新たにフォルダー"A"を作りましたが、 そのフォルダー"A"に他のパソコンからアクセスしようとすると 「\\PC○○\\Aにアクセスできません。このネットワークリソースを使用する アクセス許可がない可能性があります。アクセス許可があるかどうか サーバーの管理者に問い合わせて下さい。」と出ます。 ファイルはちゃんと共有するにチェックが入っていて これよりも以前に共有になっていた他のフォルダーの ファイルは問題なく他のpcからでも使用できます。 なぜ、新しく共有にしたフォルダーがアクセス拒否になるのか わからず困っています。 自分で知らないうちに何かpcの設定をいじってしまったのかも知れません。 出来る限り補足もしますのでアドバイスお願いいたします。

  • 1台だけネットワークがアクセスできない?

    メインのPC(サーバーではありません)に共有フォルダを設定し、LANで各ノート(6台)、デスクトップPC(1台)に接続し、各PCからアクセス出来るように環境設定をしています。ADSLモデム機器が具合悪かったので、交換し動作確認をしました。インターネットは全て接続できましたが、メインPCへのアクセスが、1台(デスクトップ)だけアクセスできません。他のノートPCはできます。原因は何が考えられるでしょうか?OSは全てXPです。LANケーブルも他のPCと交換したりしましたが、同じです。設定の問題かもしれませんが、原因がわかる方がいましたらよろしくお願いします。

  • **にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。になります

    <メッセージ>  「警告) **にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。アクセスが拒否されました。-OK」 がでます。 環境は、WinXPProのPC(ADにログオンしてます。)からWin95のワークグループのPCの共有フォルダーにアクセスしようとしたときに発生します。 XP側は、ファイヤーウォールは、無効にしています。 Win95PCは、共有機の[アクセス権の管理] →共有レベルにしています。 わかる方教えてください。

  • マスタテーブル使用時のデータテーブル設計について

    皆様こんにちは、失礼致します。 現在、ASP.NET+SQLServerで業務用帳票アプリの開発を行っています。 DBを使用した開発は初めてで、テーブルの設計手法について 経験者様のご指導を頂きたく、宜しくお願い致します。 まず、マスタテーブルは以下とします。 【顧客マスタテーブル】 ・顧客マスタID ・顧客名 ・顧客名(英語名) 帳票データ入力画面で、顧客マスタ検索ボタンから別画面を起動し、 そこで選択した顧客名を帳票データ入力画面に反映させます。 そして、帳票データ入力画面のデータをデータテーブルへ格納する のですが、その際には顧客名そのものか、マスタIDのどちらを 格納するのが好ましいのでしょうか? 要件としては以下を満たす必要があります。 1.帳票データ入力画面で格納したデータは   別の帳票データ入力画面でも使い回す。 2.帳票印刷時にのみ、顧客名を対応する顧客名(英語名)で   出力する。 3.データテーブルに格納されたデータは後々参照して使い回す。 顧客名で格納しておけば使い回しは楽ですが、2.のケースで 顧客名から顧客名(英語名)をselectした場合に、顧客名は一意でも 顧客名(英語名)が一意ではなかった場合に問題が起きます。 マスタIDで格納しておけば、対応する顧客名(英語名)は検索 できますが、マスタを修正した場合には3.で過去データを 参照する時に修正後のマスタ情報が表示されてしまいます。 結論としましては、両方とも格納しておくのが好ましいのでは、 と考えておりますが、メンテナンス性の観点から、データテーブルの カラム数はできるだけ少なくしたいとも考えております。 周囲に経験者がいなくて困っております。 ご指導頂けますと幸いです。 以上、宜しくお願い致します。

  • ○○にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。と出ます。

    フォルダ共有でデータのやり取りをしておりました。 久々にデータのやり取りしようとマイネットワークからフォルダ共有を見ようとしたらアクセスしたいPC自体見えません。 共有先のPCからは本体は見えるのですがアクセスすると 「○○にアクセスできません。このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス強化があるかどうかサーバー管理者に問い合わせしてください」 と出ます。 自分なりに色々調べてみましたが、どうしても解決が見出せません。 どなたか、自分の現状を解決するきっかけをご存知の方、アドバイスのほどお願いいたします。 PC環境です。 共有環境は3台で行っています。 ディスクトップPCとノートPC2台 ともにOS:XP HOME ノートのみ無線LANでアクセスしてます。 デスクトップPCからはノートPC自体見えない状態。 ノートPC2台ともデスクトップPCは見えるのですが、アクセスしようとすると「「○にアクセスできません~」と出ます。 ノートPC同士は互いに見えてデータのやり取りが出来ます。 これから推測するとデスクトップPCに問題があるのかと思っているのですが・・・。 なにとぞ、お力添えをお願いします。

  • 「ネットワークリソースを使用するアクセス許可」って何ですか?教えてください。お願いします。

    2台のPCのネットワークがうまくいきません。 元PCから「ワークグループを表示する」にすると新PCが表示はされるのですが、PCアイコンをクリックすると「このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。 ネットワークパスが見つかりません」とありました。 新PCからはほぼ同様のメッセージなのですが「このネットワークリソースを使用するアクセス許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。 このワークグループのサーバー一覧は現在、利用できません。」となります。 どう解決したらよろしいでしょうか。ともにXPです。

  • 社内ネットワークについて問題点

    社内でXPとウィンドウズ7の2台のパソコンの特定の共有フォルダのみでネットワークを作成したいと思い作業致しました。 作成の過程ですが XP側の作業 ワークグループ名の変更⇒共有フォルダを作成 ウィンドウズ7側の作業 ワークグループ名の変更(XP側と同一のものとしている)⇒共有の詳細設定を社内ネットワークへ設定 共有の詳細設定の変更⇒(ホームまたは社内)ネットワーク探索を有効にするに設定、ファイルとプリンターの共有を有効にするに設定、パブリックフォルダの共有の設定を無効にするに設定、ファイル有効接続の設定は128ビット暗号化を使用してファイル共有の接続を保護するに設定、パスワード保護共有は無効に設定、ホームグループ接続の設定⇒windowsでホームグループ接続を管理できるようにするに設定 現在社内で使用しているパソコンの中、この2台でファイルのやりとりをしたいと考えています。 他のパソコンからはアクセスされたくなかったりするので同じワークグループ名にしました。 ウィンドウズ7側からアクセスした場合、XP側のパソコンへのアクセスは作成した共有フォルダのみアクセスできました。 問題点(1)として、マイコンピュータから参照するとネットワーク上にXP以外のパソコンへのアクセスが可能となっています。 こちらから、アクセスできる部分は問題ないのですが、設定したワークグループ以外のパソコンからアクセスされたくないのですが、現在の設定では他のパソコンからアクセスされうる状況なのでしょうか。 XPからウィンドウズ7のパソコンへアクセスした場合に問題がありました。(問題点(2))特定のフォルダだけではなく、Cドライブのユーザーフォルダすべてが参照できてしまいます。アクセスされてもよいフォルダは、共有設定をしたフォルダのみであるのにすべてが晒されている状況です。 (うーん困った(;´Д`)どうなっているのか・・・) 長くなりましたが、ウィンドウズ7側からのXPパソコンのアクセスとしては特定のフォルダのみアクセスできる状況なので、たぶんXP側の設定はOKとおもわれます。Xp側からウィンドウズ7へのアクセスは特定のフォルダだけではなく、ユーザーフォルダすべてにアクセスできる状況となっているので、ウィンドウズ7の設定に問題があると思われます。また、この2台以外との状況もあまり把握できておらず、2台以外のパソコンからは、どういう状況でつながっているのか、教えていただきたく掲載させていただきました。 よろしくお願いします。