|
▼小僧 さん:
こんにちは。
いつもお世話になっています。
回答ありがとうございます。
>SELECT Q_紹介状のもと.社員コード,
> Q_紹介状のもと.種別,
> Q_紹介状のもと.判定,
> "番号_" & DCount("*","Q_紹介状のもと","社員コード=" & [社員コード] & " AND 種別 >='" & [種別] & "'") AS 番号
>FROM Q_紹介状のもと;
>
>のような SQL で結果を求める事は可能です。
さっそくやってみましたら、無事データは取得できました。ありがとうございます。
出来たのに、質問なのですが、これは Q_紹介状のもと をもとに別クエリを作成するということですよね?
Q_紹介状のもと を作るついでに番号を付けられるのかと思ってそちらで記述したら、カウントはされるんですが、番号_12と番号_5という謎な数値を取得しました^^;。できそうなのにだめなんですね。
>ですが、元々の Q_紹介状のもと 自体が
>ユニオンクエリを使っていらっしゃる事、
>クエリの中に定義域集計関数(今回は DCount関数) を使うことによって
>速度面でのパフォーマンスは期待できないかもしれません。
>(お使いのPCの性能にもよりますが…)
>
>件数が少なければ問題はないのですが、
>もし大量な件数の中から何枚ものレポートを発行しなければいけない場合は
>抽出条件が変わる度に何回も再計算しなければいけない為、
>クエリでなく、いったんワークテーブルに格納する方が良いかもしれませんね。
おっしゃるとおり、かなり動きが悪いです。
一気に表示されず、上から、だららららら〜(表現わかりにくいですね^^;)って感じで段階的に表示されます。
ワークテーブルに格納する方がいいのかもしれません。
とはいえ、ワークテーブルを利用する手法に不慣れなので再度質問を・・。
ワークテーブルを作成する場合
フォームにコマンドボタンを配置して テーブル作成クエリを走らせようと思ってます。
で、作成したテーブルを元にした選択クエリでR_紹介状を作成するという手順でよいのですよね?
で、
SELECT Q_紹介状のもと.社員コード,Q_紹介状のもと.種別,・・・"番号_" & DCount("*","Q_紹介状のもと","社員コード=" & [社員コード] & " AND 種別 >='" & [種別] & "'") AS 番号 INTO WT_紹介状用 FROM Q_紹介状のもと
こんな感じのSQLを書いて走らせてみたのですが、
取得する番号が変になりました。
番号_12とか番号_5とか不正な数値を取得しているみたいです。
テーブル作成時に番号を取得せずに、番号なしのワークテーブルを作って、そこからクエリで番号を取得する方法じゃないとだめなのでしょうか?
できればあまりクエリを増やしたくないなーと思いまして・・。
わけがわからなくなってくるので。
それと関連して質問なのですが、テーブル作成クエリ等はVBAにコードをかけば走らせることが出来ますよね?
それに対して、選択クエリを作成してそれをレポートソースにセットしてレポートを開くというようなことをVBAでやった場合は、クエリの実体が必要ですよね?(わかりにくくてすみません。)
つまり、できるだけ整理に努めてますが、それでもクエリがごちゃごちゃしているので、上記のような例でもクエリの実体(?)を作らずにすませられないのかなーと思って質問してみました。
長々とすみません^^;
ワークテーブル作成手順でこういう手順のほうが適正というようなことがありましたら、教えていただけると嬉しいです。
テーブルの構成方法やクエリの作り方とか、ある程度勉強はしてみたものの中々うまく作れません。
かなり無駄なクエリを作ってるような気がします・・・。
よろしくお願いします。
|
|