質問: ACCESSで質問です。 他人が作成したMDBを修正してます。 集計処理は全てクエリとマクロの組み合わせで成り立っています。 たくさんのクエリをマクロで順次実行していく形です。 この集計処理が非常に時間がかかります。 どうやら遅さの主な原因はクエリを多用しているからというよりは その一部でOracleの件数の多いテーブルをODBCで参照しているからのようです。 そこでこれをパススルークエリに変えようとしています。 ですがそのクエリはフォーム上のテキストボックスの値で抽出しようとしているクエリのため、フォーム上のパラメータでパススルークエリ実行しないといけません。 1まず、これは可能でしょうか? 下記リンクに同じ質問があったのですが最終的な答えに至っていないようです。 21が無理な場合、コード上からパススルークエリを生成することで 抽出用パラメータを渡すことが可能と思うのですが、以下の部分にコードを組み込むことは可能でしょうか? M_テスト(マクロ) 1.Q_test1 2.Q_test2(このクエリの代わりにVBAコードを実行したい)
回答: パスクエリというのは、単にSQLを実行するのにAccess側で実行しているものをORACLE側で実行する かの違いです。SQLを投げる時に、入力フォームの値を引き渡すことは可能で酢。 1はおそらく無理で、2なら以下のURLのような感じで作ります。 http://techbank.jp/Community/blogs/mymio/archive/2009/04/10/6095... また、オラクル側でストアド(関数)を作成して、この関数をAcccessからコールして結果をもらうだけと いう方式にもできます。この場合、面倒なSQLなどの処理はOracle側に書けます。