MS Access

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

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

ちょっと、苦労した。

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

-MS Access

執筆者:

関連記事

no image

Accessでのテーブルのエクスポート定義

Access2007のテーブルをcsv保存したいのだが、結果ファイルにダブルコーテーションを付けたくない・・・。 ダブルクォーテーションつきであれば、例えば、 DoCmd.TransferText a …

no image

Accessで複数の用紙サイズ・向きの帳票を印刷したいが2枚出るとか、思ったようにならないなら

私がAccessで作った会社の業務管理システムは、帳票類がほとんどA4縦の用紙で出力されるようになっている。 しかし、一部の帳票、というか封筒は、長三サイズと、角6サイズをの用紙にしないと、プリントが …

no image

Accessのパラメータは クエリのみならず、SQL文字列でも できるとは。。。

以下のリンクが参考になった。 パラメータの設定方法がわかりません。パラメータの設定を行ってい… – Yahoo!知恵袋 以下は、自分の業務で作成したコード。 Dim dbs A …

no image

AccessからExcelフォーマットでファイルに出力するサンプルコード

Excelから外部データの接続の際に,ユーザー定義関数を含んだクエリを指定するとエラーになったので、こんなやり方で対処。 Private Sub btnB2_Click() DoCmd.OutputT …

no image

「3070 有効なフィールド名または式として認識できません」エラーで、困った

Accessで、クエリ単体での実行だとうまくいくのに、いざ、そのクエリをVBAコード内で実行すると、上記エラーが出る。 難問だった。 SQL文内でDISTINCTを使っているからかなーとか、LEFT …