|
▼わん さん:
こんにちは。
>今回教えて頂いたことで1つわかったのですが、
>DLookUp関数を使うとフォーム上での速度が非常に遅くなるのですが、
>DLookUp関数は処理速度を遅くしてしまう関数なのですか?
残念ながらその通りです。
D系関数(定義域集計関数…DLookupやDCountなど)は使い勝手が良いのですが
参照するテーブルのレコード数が多くなると計算速度が落ちてしまいます。
こちらのテストデータですと20件余りなので気にならなかったのですが
わん さんが使用される環境ですと顕著に現れてしまうみたいですね…。
>クエリ作成とフォーム上での作成と処理速度とは関係があるのでしょうか?
こちらは処理速度には関係ないと思われます。
(あくまで当方の考えですが…。)
当方が作っている MDB は殆どクエリが存在しません。
先にご提示されている様にフォーム内に埋め込んでしまったり、
アクションクエリ(DELETE や INSERT など)については VBA にて
Docmd オブジェクトの RunSQL メソッド
DAO や ADO の Execute メソッド
にて実行してしまう為です。
作成段階で視覚的に SQL の実行結果を確認する場合などにクエリを作ったりしますが、
完成時には全て消去してしまいます。
ですが、複数人で MDB を製作したり後々の人のメンテナンスを考えると
Q_メインフォームの基
Q_前年度分結果
など、解りやすい名前でクエリを保存しておく方が良い場合もあると思います。
|
|