電子書籍の厳選無料作品が豊富!

下記のようなコードを使い、データだけをEXCELファイルに出していますが、間違えてEXCELファイルを削除した場合データが出ません、
アクセスでEXCELファイルを作成し、クエリデータを出す事は可能でしょうか?初心者の為コードの使い方等々解りません、宜しくお願いします。

Private Sub コマンド62_Click()
On Error GoTo Err_コマンド62_Click

Dim stDocName As String

stDocName = "集計"

DoCmd.TransferSpreadsheet acExport, , "集計", "C:\Documents and Settings\user\デスクトップ\ABC\data2"

Exit_コマンド62_Click:
Exit Sub

Err_コマンド62_Click:
MsgBox Err.Description
Resume Exit_コマンド62_Click

End Sub

A 回答 (1件)

TransferSpreadsheetの代わりに、OutPutToを使用してみてください。


なお、下記のコードのみですと、同名ファイルが既にあった場合、確認メッセージなしで
上書きされるのでご注意下さい(汗)
・・・それと、OutPutToは古いバージョンから引き継がれているためか、環境によっては
約16000行を超えるとその部分が出力されない場合がありますので、これもご注意下さい(汗)

Private Sub コマンド62_Click()
On Error GoTo エラー処理

 Dim stDocName As String, stFilePath As String

 stDocName = "集計"
 stFilePath = "C:\Documents and Settings\user\デスクトップ\ABC\data2.xls"
 DoCmd.OutputTo acOutputQuery, stDocName, "MicrosoftExcelBiff8(*.xls)", stFilePath, True

終了処理:
 Exit Sub
エラー処理:
 MsgBox Err & ":" & Error$, , Me.Name & " コマンド62・Click"
 Resume 終了処理
End Sub


・「acOutputQuery」は、「クエリの出力」の指定です。
・「MicrosoftExcelBiff8(*.xls)」は、Excelフォーマットでの出力の指定です。
・OutPutToでは拡張子なしだと拡張子なしのまま出力されるため、ファイルのパスに
 「.xls」を追加しました。
・5番目の引数の「True」は、出力したファイルを自動で起動するかどうかの指定です。
 (起動させない場合は「False」を指定)

なお、「MicrosoftExcelBiff8(*.xls)」なんて覚えていられない、と思う場合は、
『マクロ』であれば選択肢がコンボボックスからの選択制になっているので、
一旦そちらで目的の動作を行うものを作成してしまい、それをメニューから
「ツール(T)→マクロ(M)→マクロをVisual Basicに変換(B)」と選択してやれば、
マクロで指定した引数も含めて自動でVBAのコードに変換してくれるので、
試してみてください。
※Accessの『マクロ』は、『モジュール』(≒VBA)とは別物です。
 (データベースウィンドウ(テーブルやクエリの一覧が表示される画面)のところに
 ある『マクロ』を選択して、新規マクロを作成します)
 (上記メニューで変換する際は、予めそのマクロを選択(反転表示)状態に
  しておく必要があります)
※「OutPutTo」に対応するマクロの「アクション」は、「出力」になります。
 (『アクション』欄のコンボボックスの一番下の方にあります)


以下は、マクロのヘルプですが、引数は同じなので参考になるかと思います:
http://office.microsoft.com/ja-jp/access/HA01226 …
    • good
    • 0
この回答へのお礼

連絡大変遅れました、有難うございました無事解決する事が出来ました。

お礼日時:2009/06/08 17:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す