|
>その際、テーブルBに存在する顧客名を一度に抽出条件として指定するのではなく、
>1顧客ごとにクエリを実行し、Excelファイル出力時も
>1顧客ごとにシートを分割して出力したいのですが、
>そのようなことは可能でしょうか。
可能だと思います。
その方法ですが、テーブルBのレコードセットを取得し、それをループさせます。
各ループにおいて、第1に、テーブルBのレコードセットから顧客名を取得します。
第2に、取得した顧客名を抽出条件としてテーブルAからレコードを抽出するクエリのレコードセット(rsA)を取得します。
第3に、rsAをエクセルに展開します。
これに当たっては、エクセルのCellプロパティを使ったり、
エクセルのCopyFromRecordsetメソッドを使います。
なお、エクセルへの出力に当たって、TransferSpreadsheetメソッドやOutPutToメソッドが
使えるかと思いましたが、
これらメソッドでは、出力先のワークシートを指定したり、出力先のセル範囲を指定したりは
できないみたいですので、いずれも使えなさそうです。
ところで、テーブルAのテーブル構成がまずいですね。
テーブルAに顧客名フィールドが設けられていますが、
顧客名フィールドはテーブルBに既に設けられているので、
テーブルAに顧客名フィールドを持たせてはいけません(一事実一箇所の原則)。
テーブルAには、顧客名フィールドに代えて、
テーブルBの連番フィールドと同じ値を持つフィールドを設けなければいけません。
|
|