Microsoft Access 掲示板

クロス集計クエリの結果をエクセルにエクスポートしたい / 1

6 コメント
views
1
hatena 2025/03/05 (水) 02:35:09 修正

クエリのSQLを書き換えてからエクスポートするといいでしょう。
エクスポート後にクエリのSQLを元に戻しておきます。
エクスポートが失敗しても、必ず元に戻せるようにエラー処理も追加しておいた方がいいでしょう。
下記のような感じのコードになります。

    Const QueryName = "Q年度別売上集計_Cross_顧客と営業担当別"
    Dim qd As DAO.QueryDef
    Dim strFilter As String
    Dim strSQL As String
    Set qd = CurrentDb.QueryDefs(QueryName)
    strSQL = Replace(qd.SQL, ";", "")
    
    'クエリの抽出条件にフォームのFilterを設定する
    qd.SQL = "SELECT * FROM (" & strSQL & ") WHERE " & Me.Filter & ";"
    
    On Error Resume Next 'エクスポートがエラーになっても以降の行を実行
    'エクセルにエクスポート
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, QueryName, Filepath & FileName, True
    
    'クエリのSQLを元に戻す
    qd.SQL = strSQL & ";"
    On Error GoTo 0 'エラー処理をを無効にする
通報 ...