Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2016)
ADO経由でAccessレコードの追加、更新を行う場合の注意点は?
投稿日時: 17/06/19 10:09:03
投稿者: マンゴ

お世話になっております。
 
以下改善を考えており、事前に注意点等について
アドバイスを頂ければと思います。
 
10人規模がローカルExcelよりADO経由でサーバー上のAccessに対し
レコードの追加、更新、削除等を行う、改善を考えております。
ところで、「.accdb」のAccessファイルをデータベースとして使う場合
どのような点について気を付けなければならないか教えて頂きたいです。
 
いちばん気になるとこは、データの同期化です。
(Accessファイルが壊れるとか、データが正しく反映されないなどの懸念)
 
PS:随時作業で、1ヶ月間のデータ量は5万行ほどになります。
  (Excel2016, Access2010)
 
宜しくお願い致します。

回答
投稿日時: 17/06/19 10:41:50
投稿者: Suzu

引用:
10人規模がローカルExcelよりADO経由でサーバー上のAccessに対しバックアップ
レコードの追加、更新、削除等を行う、改善を考えております。

 
改善という事は、その処理について、
何か元があって、改変するという事ですよね。
大本は、どんな事を行っていますか?
 
 
一からExcelのVBAを使って データベースと接続するならSQL Serverの方が楽です。
ストアドプロシージャも使えますし、速度も速いですから。。
 
 
あくまでもAccessと言うなら
 
・Accessファイルが壊れる
 
基本的に、Accessのオブジェクトの改変を行うと mdbの頃は壊れやすかったです。
accdbについての情報は持っていません。
 
何にしても、定期的なバックアップは必要でしょう。
 
 
・データが正しく反映されないなどの懸念
  複数人が、同時に 同レコードに対し編集を加える事ができない様、
  自前で用意する必要があります。
  「各人がどのレコードを編集中である」と言う仕組みが必要です。
 
   1処理の中で、複数レコードに対し改変を行うのであれば 上記の方法を採るより
   トランザクションにて処理した方が楽でしょうね。
 
・Accessのデータベースを共有スペースにおいて共有するのは、
  ファイル共有の仕組みを利用しています。
 
  よって、同時に3名以上 が処理すると急に重くなる様な感じになります。
 
  複数のテーブルを接続する様な処理も、
  必要なレコード周辺のレコードをまるっとクライアント側で取得しクライアント側でSQLに則り
  必要なレコードを特定します。 なのでネットワークには必要なレコード以外も流れる事になり
  ネットワーク遅延の一因となります。
  (SQL Server であれば、SQLを SQL Serverに渡し、
   必要なレコードをSQL Server側で抽出し、必要な情報のみをネットワークに流します)

投稿日時: 17/06/20 14:06:07
投稿者: マンゴ

Suzu様、ご回答ありがとうございます。
頂いたコメントを参考にしながら、
Excel⇔Accessでやってみます。