MS Access

Accessでフォームフィルタの結果をExcelにエクスポートする

投稿日:2013年6月12日 更新日:

ちょっと、苦労した。

[code]
Private Sub cmdDMデータ作成_Click()
On Error GoTo Err_cmdDMデータ作成_Click
Dim rstf As String
Dim F As String
Dim Qdf As QueryDef
F = Me.Filter 'フォームフィルタの内容
rstf = "SELECT * FROM 顧客ID毎カウント WHERE " & F & ";" 'フォームのレコードセット+フィルタ
Set Qdf = CurrentDb.CreateQueryDef("QryTemp", rstf)
'    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "QryTemp", CurrentProject.Path & "/DM.xls", True, strSheetName 'Excelで保存
'    DoCmd.TransferText acExportDelim, , "QryTemp", CurrentProject.Path & "/DM.csv", True 'CSVで保存
DoCmd.OutputTo acOutputQuery, "QryTemp" 'ファイル形式を選択して保存
MsgBox "Excelファイルへの出力が終了しました"
DoCmd.DeleteObject acQuery, "QryTemp"
Set Qdf = Nothing
Exit_cmdDMデータ作成_Click:
Exit Sub

Err_cmdDMデータ作成_Click:
MsgBox err.Description
If err.Number = 2302 Then MsgBox "Excelファイルを保存できません。ファイルが開かれていないか確認してください。"
DoCmd.DeleteObject acQuery, "QryTemp"

End Sub
[/code]

-MS Access

執筆者:

関連記事

no image

パラメータクエリにパラメータをセットして実行した結果をデータシートで表示する」というコードの実行で3065エラー

Accessの仕様として、パラメータクエリだけが駄目なのかと思ったら、なんと選択クエリが駄目なのだそう。 理由は、Executeメソッドはアクションクエリのもので、選択クエリのものではないからだそう。 …

no image

Accessであらかじめリンクテーブルを開いておくと劇的に高速化

リンクテーブルに対して「Dlookupで値を探して見つかったらCurrentDb.Execute UPDATE~ で値を更新」という処理をループで回している。 この処理、一旦始めると、終えるのに30分 …

no image

SqlServer 2008 Express R2 をインストールしようとしているのだが、最後の最後でうまくいかない

前回、試しに自分の普段のPCでSqlServer2008をインストールしたのだが、今回はサーバ(といってもXP)を対象に同様のことをしてみた。 しかしインストールの最後で「there was an e …

no image

Accessで指定テーブル内を全文検索

今まで、特定のフィールド内でしか検索できないものだと思っていた・・・。 Accessのリボンの検索ボタンをクリックして表示されるダイアログボックス内の「探す場所」で特定のテーブル/クエリ/フォーム名か …

no image

Accessクエリでのフィールド名は同じので重複できる

Accessではクエリの中で同じフィールド名を使えない! ・・・とずっと思っていた。 なので、テーブルで使っているフィールド名でクエリの結果を出す必要があった際には、クエリを二つ作ってそれぞれ前処理 …