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

AccessとBASP21で正規表現を使ってメール文から必要事項を取り出すサンプル

Accessで正規表現を使いたかったのですが、ネット上にはサンプルが少なく、苦労したので、とりあえずツギハギで作った私のコードを披露したいと思います。 Accessで正規表現を使うには、BASP21を …

Access「実行時エラー3061 パラメータが少なすぎます。2を指定してください」で意外な決着

クロス集計クエリをVBAで読むときで、かつパラメータクエリを使う場合には、クエリのパラメータパネルで、別途、パラメータを指定しなくてはならない(VBAで使わないなら不要) 本日のトラブルは、その後、W …

no image

Accessで、見積書のような「サブフォームつきフォームを丸々コピー」する方法・・・見つけるのに、四苦八苦。

最初、複雑でかつ読み取り専用のクエリを元にしたフォームをコピーしようとしていたために、 acCmdPasteAppendのラインで「コマンドまたはアクション”追加貼り付け”は無効です」のエラーが出て、 …

no image

客先で動かしているAccessとFAXの連携システムが昨日から止まっている

これまでのWindowsXP+OutlookExpressであれば問題なかった。 しかし、OSはWindows7になってしまい、メールはWindowsLiveメールになってしまった。 そしてWindo …

no image

access覚書

複雑な親子フォームを作る際、テーブル設定でインデックスを2つのフィールドとも「はい (重複あり)」にすることで、親のコンボボックスに子が連動するようになった。 Excelでコピーした表データをテーブル …