

顧客データの検索画面をAccessで作成しています。
テーブルの数は全部で9、各テーブルのレコード数は約1万、
各テーブルのフィールド数は多くて20くらいです。
テーブル用のAccessをサーバに置いておいて、
検索画面フォームのAccessはそれぞれの社員のローカルに置いています。
テーブルを参照している社員数は20弱です。
Accessのバージョンは2007や2010、Runtimeを使っている社員もいます。
氏名フリガナと電話番号で検索できるようになっていて、
下の□のなかに、各テーブルの該当のものが抽出されるようになっています。
この検索画面の動きが最近著しく悪いです。
もっとサクサク動くようにしたいです。
色々調べてはみたのですが
・テーブルをSQLサーバに置いてリンクしなおしてみたのですが
余計動きが遅くなりました。
・「ある程度絞り込んでから検索をかける」というのが高速化のポイントらしいですが
常に全件が検索対象なので、それができません。
・テーブルのレコードについては常に全社員が新規作成、変更等できる状態でなければならないです。
動きを高速化させる知恵はないでしょうか?
ご教授ください!

No.2ベストアンサー
- 回答日時:
ミスリードが怖いので今回限りとします。
バックエンドの顧客データファイルをローカルにおいて再リンク。
これで試した場合に
共有フォルダに置いた場合とさほど処理時間が変わらなければ
Accessでの処理が限界にきていると推察されます。
両者とも他に誰も使用していない状況で試す必要があります。
差が格段に大きければネットワーク上に置いてあるために
問題が発生していると考えても良いのではないかと思います。
じわじわと遅くなったのではなければ
昨年くらいからWindows Update でいろいろとOSにも修正が入っているので
MSさん何かまずい事していない?と疑いたくなります。
以下は随分と昔なのですが調べた中で関係ありそうなのをピックアップしました。
[ACC2003] 複数のユーザーでリンク テーブルにアクセスするとパフォーマンスが落ちる
http://support.microsoft.com/kb/838670/ja
ネットワーク共有上のファイルを開いたとき、開くのに時間がかかる、読み取
り専用で開く、あるいはエラー メッセージが表示される
http://support.microsoft.com/default.aspx?scid=k …
Windows Vista を実行しているコンピュータで Microsoft Office Access デ
ータベースを開いたとき、または使用しているときに発生することがある問題
http://support.microsoft.com/kb/935370/ja
あとは、アンチマルウェアが足を引っ張っているとか・・・。
いずれにしろ、常時20人弱が頻繁に更新・新規レコード作成を行うのですから
Accessには荷が重すぎるように思います。
デッドロックに乗り上げたりファイル破損の可能性が常に付きまとうので
念には念を入れて作りこまないと・・・。
それに9万レコードのデータがLANを流れるわけですから。
以上、ご参考まで。
この回答への補足
>バックエンドの顧客データファイルをローカルにおいて再リンク。
上記方法をためしてみました。
すごく速くなったわけではないですが、
サーバー上のテーブルを見にいくよりは速かったです。
いただいたURLを参考にさらに調べをすすめていきたいと思います。
ありがとうございました!
たびたびありがとうございます!
>バックエンドの顧客データファイルをローカルにおいて再リンク。
さっそく週明けにでもこれやってみます!
どこが遅いのか、なんで遅いのか、まったく見当も付かず、
どうしてなんだろうと考えながらも手が思い浮かばず
何年も経過している次第です。
こうやってやってみれば原因が絞り込めていきますね!
大変参考になります!
>常時20人弱が頻繁に更新・新規レコード作成を行うのですから
>Accessには荷が重すぎるように思います。
こちらについても大変参考になりました!
Accessの限界ってどのくらいなんだろうと、それも知らなかったので・・・。
原因が絞り込めたら、社内システムの新しい運用方法を考えたほうがよさそうですね。
週明けに色々ためしてみてまた結果をお礼に書かせていただきます。
色々とありがとうございます!
No.1
- 回答日時:
出来ることは限られているように思います。
既に試されてはいるかと思いますけど一応。
・氏名ふりがなフィールドと電話番号にインデックスを設定。
・『検索』を、Filter で行っているのならクエリの抽出条件で行うように変更。
・SQL Server にデータを置いてあるなら、パススルークエリを試してみる。
「access sqlserver パススルークエリ」辺りでGoogleって見てください。
ご回答ありがとうございます!
>・氏名ふりがなフィールドと電話番号にインデックスを設定。
調べたところあいまい検索ができる場合はインデックスの作成はあまり意味がないと知りました。
また、レコードの新規作成や更新を頻繁にやっていると、インデックスがあると今度はそっちが遅くなると知り、あきらめました。
>・『検索』を、Filter で行っているのならクエリの抽出条件で行うように変更。
現時点でクエリの抽出条件でやっています。
たまたま最初からそうしていただけなんですけど。。。
Filterより抽出条件のほうがはやいんですね!知らなかったです!
>パススルークエリ
ためしてみたんですが、なぜか余計に遅くなってしまいました。。。
これをやれば簡単に早くできるよ、という具合にはいかなそうですね。
私が不勉強なだけで、
SQLServerを使えば早くなる方法がある気がします。
じっくり時間をかけて勉強していきたいと思います。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
アクセスをネットワークでリンクさせると非常に遅い!?
その他(データベース)
-
Access クエリ実行が急に非常に遅くなりました。
Access(アクセス)
-
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
6
AccessのDAO.ExecuteとDoCmd.RunSqlの違いについて
その他(データベース)
-
7
Accessの処理速度を速めるためにテーブルとそれ以外を分割してもああまり速くならないのですが・・・
その他(データベース)
-
8
accessの処理が遅い
その他(データベース)
-
9
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
10
Access2000、これはいったい・・・・
その他(データベース)
-
11
ACCESSのレポートフッターをグループフッターの下に出したい。
Access(アクセス)
-
12
Access200のFilterとFindの違い
その他(データベース)
-
13
クエリのデータをテーブルに入れたい
Access(アクセス)
-
14
Accessのフォームでタブの色
Access(アクセス)
-
15
Accessのフォーマット時イベント
その他(データベース)
-
16
Access2000で抽出したデータに連番をふるには
Access(アクセス)
-
17
ACCESSでクエリを作成したら「式が複雑すぎます。」の表記が…
その他(データベース)
-
18
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
19
ACCESS クエリで、グループ化したものをカウントしたい
その他(データベース)
-
20
アクセスで#エラーを表示させない方法は?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
アクセスのフォームを開くとき...
-
Access 2010 土日祝日を除いて...
-
Accessを使って日付を比較したい
-
Accessの入力フォームから、テ...
-
accessのレポートであとから他...
-
Access 複数フィールドの一致
-
アクセスの重複クエリ
-
アクセスにエクセルのデータを...
-
Accessの「式で型が一致しませ...
-
ACCESS クエリで重複データを最...
-
選択したチェックボックスのみ...
-
Accessのフォーム上にレコード...
-
アクセスのフォームのビューが...
-
アクセス:フォームを閉じずに...
-
Formからの複数選択抽出条件に...
-
Access 別フォームへの再クエ...
-
Access2002 フォームを閉じるた...
-
ACCESSでクエリを作成したら「...
-
ACCESSでデータ削除すると「読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに主キーを作らないデ...
-
アクセスにエクセルのデータを...
-
accessのレポートであとから他...
-
accessで、「集計のオプション...
-
Accessの入力フォームから、テ...
-
Access2010 携帯番号にハイホン...
-
オートナンバー型を1から始める...
-
Accessで検索を高速化
-
アクセスのフォームを開くとき...
-
Accessを使って日付を比較したい
-
Access 2010 土日祝日を除いて...
-
Access 複数フィールドの一致
-
アクセスの重複クエリ
-
Access クエリの更新結果をテ...
-
MS-Accessのレコード内のフィー...
-
ACCESS2013 クロス集計以外で、...
-
Accessのクエリによる集計が出...
-
MS Access で、2つのテーブル...
-
アクセスのデータ型を変更する...
-
Accessフォームでデータ入力で...
おすすめ情報