質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

1971閲覧

Microsoft Accessでデータベースとクライアントを分離した利用方法について

watarusugimoto

総合スコア47

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/10/02 16:37

データベースの破損の可能性について知りたい。

現在の使用環境

現在、Windows2007のOSの中で、Access2010を使用しています。
スタンドアロンのPC内に.mdbと.accdbのファイル2つがあり、.mdbへはデータベースを、.accdbへは帳票や操作画面を持っており、データを呼び出す際には、.mdbへデータを読みに行く構造となっており、操作終了後に.mdbへ書き込みに行き、.accdb内のテーブルは空にする仕組みとなっています。

今後目指している使用環境

現在の利用方法としては、スタンドアロンのPC内で使用しており、基本的に1人しかアプリケーションを使っていませんが、ネットワーク内のファイルサーバー内に.mdbを配置し、複数人に.accdrファイルを配布して.mdbを閲覧できるようにできないか検討している最中です。

色々と調べてみると、.mdbと.accdr間での通信の最中に接続が遮断されると、データベースが破損することがあると言う情報(下記のサイト)を目にしましたが、実際のところどうなのか、把握できておりません。
第5回 ACCESSを「ファイル共有」で使用する場合の注意事項

質問したいこと

Accessを複数人で利用する場合、データベースが破損する頻度はどれほどなのでしょうか?
また、複数人での使用で気を付けるべきことが有れば教えて欲しいです。

利便性も良いため、複数人で閲覧できる仕組みに変更したいと考えていますが、データベースの破損が怖くて踏み切れていません。

システムの利用頻度については、毎日閲覧、更新されるシステムで利用頻度は高いのですが、複数利用に関しては多くても5人でそこまで多くの時間同時に閲覧するということは有りません。

以上、どなたか経験のある方アドバイスをよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

.mdbと.accdr間での通信の最中に接続が遮断されると、データベースが破損することがあると言う情報(下記のサイト)を目にしましたが、

AccessはOSのファイル共有機能を利用して、マルチユーザーによるデータ共有を実現しています。
Accessに限らず他のアプリでもファイルを書き込み中に通信が切断されれば、ファイル破損の危険性はあります。
ただ、OSもキャッシュを利用しての遅延書き込みをしているはずですので、めったに壊れるものでもないと思います。

Accessを複数人で利用する場合、データベースが破損する頻度はどれほどなのでしょうか?

これは、ネット環境、PCの性能、共有ユーザー数、などにより変わるので、なんとも言えませんが、私の少ない経験からいうと、有線LANで、共有ユーザー数(同時書き込み人数)が5以内なら、めったに壊れることはないと思います。
ただ、壊れることがないとは言い切れないので、サーバーのデータファイルは定期的にバックアップを取り、すぐにそれで復帰できるようにしておく必要はあります。

データを呼び出す際には、.mdbへデータを読みに行く構造となっており、操作終了後に.mdbへ書き込みに行き、.accdb内のテーブルは空にする仕組みとなっています。

という設計で、

システムの利用頻度については、毎日閲覧、更新されるシステムで利用頻度は高いのですが、複数利用に関しては多くても5人でそこまで多くの時間同時に閲覧するということは有りません。

ということならそんなに心配せずに共有にしてもいいと思いますよ。
ただし、定期的な自動バックアップ、復帰システムは実装しておきましょう。

投稿2018/10/04 00:55

hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

watarusugimoto

2018/12/08 17:11

mdbを複数ユーザーがaccdbへテーブルコピーしに行くような状況では、競合や破損が生じる可能性は低いのでしょうか? 書き込みではなく、読み込みだとより安全なのかどうか、もし回答可能でしたらよろしくお願いいたします。
guest

0

閲覧のみでは破損の可能性は低いです。
引用されている記事にもあるとおり、ネットワークが安定しないと破損の可能性は高くなります。
LAN接続は無線よりは有線を使用したほうが良いでしょう。

後は極力データの競合を避ける仕組みにする事ですね。
更新を伴うものについては、accdbにコピーしたテーブルに対して連結して、完了時にmdbの内容を更新するとか。

破損については、容量も関係します。
ファイルサイズの上限が2Gなので、最適化は頻繁に行ったほうがいいでしょう。
accdbの方は閉じるときに最適化すればいいですけど、mdbの方は共有するということもあり運用を絡めての考慮が必要です。

投稿2018/10/03 04:12

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

watarusugimoto

2018/12/08 17:09

回答が遅くなり申し訳ありませんでした。 ネットワークは安定しているようです。 競合を極力避ける方針で今後改修していきたいと思います。 ちなみに競合についてですが、mdbへ書き込みに行った際に、ほかのPCも同時に書き込みに行っている状態でしょうか? 読み込みを同時に行う場合というのは競合は発生しないのでしょうか? 回答が遅くなってしまい申し訳ないのですが、もし可能でしたらよろしくお願いいたします。
sazi

2018/12/08 23:36

書き込みで競合が起きるかどうかは、更新のタイミング次第です。 読み込みといっているのはコピーの事でしょうから、競合の心配は無いと思います。
watarusugimoto

2018/12/09 03:36

読み込みはコピーのことです。 ありがとうございます。 大変参考になりました。
guest

0

「操作終了後に.mdbへ書き込みに行き、.accdb内のテーブルは空にする仕組み」
であればほとんど壊れないと思います。

個人的には「Accessのやりやすさ」というのは
「テーブルに直接連結したフォーム」
だと思っているのであまり上記のようなやり方は取りませんが、
ファイル共有したテーブルに直接連結したサブフォームでも壊れるのは
月に1回もないくらいです。

Accessプログラムの作りに依存する話ですのであくまで一例になります。
「壊れるはずがない」と思って使うのではなく「壊れるかもしれない」と思って
対策(定期的にバックアップや最適化等)して利便性を享受しましょう。

ただしネットワーク共有でやると「データを取得、更新するスピード」
が変わるかもしれません。

windows2007っていうOSはないと思います。。。

投稿2018/10/03 00:58

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問