• ベストアンサー

Accessフォームのイベント内に下記プロジャーを追加したいのですが教

Accessフォームのイベント内に下記プロジャーを追加したいのですが教えてください。 クエリ Q_AAA をExcelにエクスポート(C:\AAA.xls)←AAA.xlsは元々存在します。 エクスポートしたExcelを開く よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

【既存のAAA.xlsを削除(上書き)する場合】 フォームの当該イベントのプロシージャに、以下のコード1行を追加するだけでOkです:   DoCmd.OutputTo acOutputQuery, "Q_AAA", acFormatXLS, "c:\AAA.xls", True  ※引数の詳細については「OutputTo」か「出力」のヘルプをみてみて下さい。 【既存のAAA.xlsにワークシートを追加する場合】 フォームの当該イベントのプロシージャに、以下のコードを追加して下さい:   Dim sTemp As String   'ファイルパスを定数として宣言   Const sFilePath As String = "c:\AAA.xls"   '現在の日時を取得   sTemp = Format(Now(), "yymmddhhnn")   '上記日時を名前として、クエリQ_AAAを複製   DoCmd.CopyObject "", sTemp, acQuery, "Q_AAA"   '既存のAAA.xlsにワークシートを追加する形で出力   '(ワークシートの名前は、出力したクエリと同じ(=上記日時)になります)   DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, sTemp, sFilePath   '別名保存したクエリを削除   DoCmd.DeleteObject acQuery, sTemp   'AAA.xlsを開く   Application.FollowHyperlink sFilePath ・・・以上です。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

順番を変えて、 エクスポートしたいExcelブックAAA.xlsを開く←AAA.xlsは元々存在します。 クエリ Q_AAA をExcelに出力(追記と解釈しました) でも良ければ、スケルトンですが、下記の通りでいけると思います。 エクスポートでなければ嫌だという事なら、スルーしてください。 Sub output_to_Excel() Dim rs As New ADODB.Recordset Dim objEXCEL As Object, wbk As Object, sh As Object Dim i As Long, j As Long Const xlUp = -4162 'Excelを起動する Set objEXCEL = CreateObject("Excel.Application") objEXCEL.Visible = True 'エクセルのファイルは、mdbと同じ場所にあるとする Set wbk = objEXCEL.Workbooks.Open(CurrentProject.Path & "\" & "AAA.xls") Set sh = wbk.sheets("Sheet1") i = sh.range("A" & sh.rows.Count).end(xlUp).row + 1 rs.Open "Q_AAA", CurrentProject.Connection, adOpenKeyset, adLockOptimistic Do While Not rs.EOF With sh For j = 1 To rs.Fields.Count .cells(i, j).Value = rs.Fields(j - 1).Value Next j i = i + 1 End With rs.MoveNext Loop rs.Close Set rs = Nothing End Sub

すると、全ての回答が全文表示されます。

関連するQ&A