ここから本文です

Access2016にてテーブルからSELECT分を発行し、 その結果をファイルダイアログを...

b03********さん

2018/1/1710:20:22

Access2016にてテーブルからSELECT分を発行し、
その結果をファイルダイアログを表示させてCSV保存したいのですが、
どのようなロジックを発行すればよろしいでしょうか。

閲覧数:
81
回答数:
3
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ony********さん

2018/1/1711:30:07

>ファイルダイアログを表示させて

は、「名前を付けて保存」ダイヤログのことだとすれば、

API関数のGetSaveFileName を使って名前を設定する方法があります。

以前、ロードシステムさんのページに直撃のサンプルがありましたが、
今は閉鎖されているようです。

直撃のコードではないですが、下記のページの中にも見られます。
http://www.accessclub.jp/samplefile/samplefile_78.htm
(Openの例が載っていて、Saveの方は埋もれています)


これができれば、tachyon_takionさんのリンク先の出力ファイル名に、
ダイアログで指定したファイル名を入れ込んで出力することになります。

  • ony********さん

    2018/1/1716:43:51

    hatena1989さんのApplication.FileDialog メソッドでの方法との違いは、参照設定が必要か必要ないかになります。

    Microsoft Office xx.0 Object Library

    .FileDialog メソッドは、参照設定なしの状態で、ACCESSのApplicationで使えないので避けていました。



返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

hat********さん

2018/1/1713:03:47

まずは、ファイルダイアログを開いてユーザーにファイルを選択させる方法は、APIを使う方法もありますが、Application.FileDialog メソッドを使う方法が簡単でしょう。

Access VBA:AccessのFileDialogを使用して[名前を付けて保存]ダイアログボックスを表示するサンプルプログラム
https://selifelog.com/blog-entry-249.html

あるいは、WizHookオブジェクトを使用する方法もあります。

Access VBA:WizHookオブジェクトを使用して[ファイルを開く]、[名前を付けて保存]ダイアログボックスを表示するサンプルプログラム
https://selifelog.com/blog-entry-53.html


SELECT文はVBAで動的に生成するのでしょうか。
それとも、固定のSQL文でしょうか。

固定のSQL文なら、クエリとして保存しておいて、それを、DoCmd.TransferText メソッドでエクスポートすればいいでしょう。

動的に生成するなら、ダミーのクエリを一つ作成しておいて、生成したSQL文をそのクエリに設定してから、DoCmd.TransferText でエクスポートすればいいでしょう。

コード例 事前に Q_Dummy というクエリを作成しておいてください。中身にはなんでもいいです。

Dim strSQL As String
Dim FilePath

'SELEC文を生成
strSQL = "SELECT ・・・・・・・・・"

'Q_DummyのSQLを生成したSELEC文に書き換え
CurrentDb.QueryDefs("Q_Dummy").SQL = strSQL

FilePath = "ファイルパス"

DoCmd.TransferText acExportDelim, , "Q_Dummy", _
FilePath, True

tac********さん

2018/1/1711:09:13

対象:Access2007, Access2010, Access2013
との記載ですが2016でも行けると思います。


Access VBAでファイル名・出力先を指定してCSVをエクスポート
http://www.relief.jp/docs/access-vba-export-csv-file.html

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる