環境:ACCESS 2000 Win 2000
ACCESSで顧客データベースを作成しています。
・顧客データの件数は約6,000件
・テーブルの数は19
・テーブルのみのデータベースAとそのテーブルからリンクをしてデータを抜いてきているデータベースBとAのテーブルのみをリンクしているデータベースCがある
・Aにはテーブルのみで、データを蓄積する目的のみに使用
・Aはローカルではなくサーバー上にある
・Bはデータ入力用で複数の人で使う場合もある
・Cは別のソフトからAのデータを呼ぶためにある
上記の状態でBの入力用データベースを触っているのですが、フォームの保存やフォームを開くときなどにすごく時間がかかります。長いときは4・5分かかってしまいます。
このようにACCESSのレスポンスが悪くなるのはどういうことに原因があるのでしょうか?
あまり詳しい状況の説明ができていなくて、分かりにくいかと思いますが、どなたか教えてください。
No.2ベストアンサー
- 回答日時:
何か、フォーム側の処理で重い事をしているのでしょうかねぇ。
例えば、インデックスが効かない様な重いクエリを作ってしまって、その結果を表示させたりしてるんじゃないでしょうか。
あるいは、クエリ中でテーブルの結合の仕方をミスって、すんごい量のレコードを引っ張ってくるようになってしまっているとか。
そうであれば、クエリの部分を出来るだけ軽くすればいいんですよね。
あとは、ネットワークに流れるデータ量を最小にすることです。高々6千件のデータ量であっても、複数人数が同時に使うとなると、かなりのトラフィックになります。
レコードソースにテーブル名を指定しただけの単純なフォームだと太刀打ちできないかもしれません。(だって、フォームを開いたすべての人に、要りもしないデータを6千件、送りつけるんですよ。)
もし入力専用のフォームでしたら、プロパティの「データ入力用」を設定してやればいいでしょう。
入力も照会もというのであれば、例えば、こんな感じにするといいでしょう。
まず、検索用フォームと表示/入力用フォームとを分けて作ります。
表示/入力用フォームは常にデータを1件だけ表示するようにします。(顧客No等で絞り込んだSQLを、フォームのレコードソースに設定します。)
フォームに他の人のデータを表示したいときには、
検索用フォームを起動して、条件で絞り込んで検索→該当する人を一覧表示(*1)→その中から一人を選ぶ→選んだ人を表示するようなSQLを組み、表示用フォームのレコードソースに設定する。
ってな感じでしょうか。
*1:絞込みをする際に、Top句を使用すれば、大量のデータが返ってくるような検索条件を指定されても、重くなる前に対処できます。
まずは、重いクエリを軽くすること、次に、ネットワークのトラフィックを最小にすること。この二つを行えば、かなり快適になると思うんですが。
クエリの見直しをしたら、かなり早く動くようになりました。
あとはネットワークに流れるデータ量の方も最小にできるよう頑張ってみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AccessVBAの値によっ...
-
Accessフォーム上の値を条件と...
-
「バリアント型でない変数に Nu...
-
インデックスまたは主キーにはn...
-
Accessで時間外管理の作成について
-
Access サブフォームでの選択行...
-
エクセルで、抽出したデータだ...
-
Accessのコンボボックスの値が...
-
コンボボックス全ての値を取得...
-
accessでオートコンプリート機...
-
AccessのWHERE句において、変数...
-
Accessのレコード数をテキスト...
-
【Access】条件未入力時、全件...
-
ACCESSクエリ抽出条件について
-
Access 複数フォームを...
-
Access2003 式ビルダでのLike...
-
Access 帳票フォームのコンボボ...
-
サブフォームでフィルタしたデ...
-
【ACCESS2000】 サブフォーム...
-
帳票フォームでのあるコンボボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
前のレコードの値を自動で入れたい
-
インデックスまたは主キーにはn...
-
Accessでデータを更新したらそ...
-
Accessフォームが入力できません。
-
access別のテーブルを参照して...
-
アクセスでコードを入れると名...
-
テキスト型のフィールドでハイ...
-
入力した値をコンボボックスに...
-
AccessVBAの値によっ...
-
ACCESS フォームで入力データ...
-
Access 自動入力の解除方法
-
ACCESS2000の帳票フォームでテ...
-
ACCESSで定型入力の〒が表示さ...
-
ACCESSでフォームのチェックボ...
-
「バリアント型でない変数に Nu...
-
Accessでフォームに自動入力し...
-
アクセスのフォームの必須項目...
-
Accessのフォームでデータ入力...
-
Accessで時間外管理の作成について
-
Accessフォーム上の値を条件と...
おすすめ情報