毎回大変お世話になってます。
クロス集計クエリを基にしたフォームがあり、それにオプションボタンによりフィルターをかける様にしてます。
そのフィルターを反映した結果をエクセルにエクスポートしたいのです。フォームには下記コードでコマンドボタン作成してますが、これだけではフィルター反映出来ません(全データの出力となります)。
このコードにどう追記していいのかが分かりません。
Dim Filepath As String, FileName As String, Expath As String, modori As Integer
'エクスポートするExcelのフルパス
Filepath = DLookup("Fp1", "T_OtherFile") & DLookup("Exfo1", "T_OtherFile") & "\"
Expath = DLookup("ExePc", "T_OtherFile")
FileName = "年度別売上集計_Cross.xls"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Q年度別売上集計_Cross_顧客と営業担当別", Filepath & FileName, True
宜しくお願いします。
クエリのSQLを書き換えてからエクスポートするといいでしょう。
エクスポート後にクエリのSQLを元に戻しておきます。
エクスポートが失敗しても、必ず元に戻せるようにエラー処理も追加しておいた方がいいでしょう。
下記のような感じのコードになります。
hatenaさん ありがとうございます。
頂いたコードをコピーして実行したところ ”変数が定義されていません”のエラーが出ました。見ると Set qd = db.QueryDefs(QueryName) のdb部を示してました。これの変数宣言はどう追記したらいいでしょうか? すみませんDAOは全然知識ないもので。
その部分を下記に修正してください。
元の回答のコードも修正しておきました。
確認してみたら、#1の回答のコードではだめですね。
クロス集計クエリはサブクエリにはできないようです。
いま、修正コードを作成中ですのでしばらくお待ちください。
普通の選択クエリや集計クエリなら#1の回答のコードでOKですが、
クロス集計クエリの場合は、下記のコードを使用してください。
hatenaさん ありがとうございます。
最終で頂いたコードで上手く出来ました。とても自分では解決できる事ではありませんでした。
DAOも勉強が必用だなと感じました(中々ハードル高いですが)。
毎回対応して頂き感謝です。