- ベストアンサー
CSVファイルの出力
こんにちは。 ただいまアクセスで商品の検索プログラムを作っていまして、入力した商品名に一致する商品コードと商品名をテーブルから抽出し、CSVファイルに出力したいのですが、どういった方法で出力すればいいのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ダイアログを開く前に下記の命令を入れてみてください。 '現在のフォルダを変更 ChDir "C:\XXX"'(設定したいフォルダのパス)
その他の回答 (4)
- ishimatsu123
- ベストアンサー率42% (3/7)
エクセルでは標準でGetSaveAsFilenameメソッドがあるのですが、 Accessで作っておられるのを忘れていました・・ Accessで使用するにはエクセルの参照設定を追加する必要があります。 (実行環境にExcelが入ってないと使えません) 参考URLを見たら詳しく書いてあります。
- ishimatsu123
- ベストアンサー率42% (3/7)
ソースに以下を貼り付けて実行してみてください。 sFile = "ABC.csv" sFillter = "テキストファイル (*.csv), *.csv" sTitle = "ダイアログ タイトル" fname = Application.GetSaveAsFilename(sFile, sFillter, , sTitle ) MsgBox fname 「VBA ファイルを開く ダイアログ」 等のキーワードで検索したらかなりの情報がヒットしますよ。
補足
.GetSaveAsFilename でデータメンバが 見つかりませんとエラーがでます。
- ishimatsu123
- ベストアンサー率42% (3/7)
#1です。 「CSV出力]ボタンのクリックイベントで ダイアログボックスから戻り値(指定されたパス)を取得してから、 Set DB = CurrentDb Set RS = DB.OpenRecordset("SELECT 商品コード, 商品名 FROM 商品マスタ", DB_OPEN_DYNASET) fn = FreeFile Open [ダイアログで指定されたパス(~\~.csv)] for Output As #fn Do Until RS.EOF Write #fn, RS("商品コード"),RS("商品名") RS.MoveNext Loop RS.Close のような形ではどうでしょう。
補足
何度も申し訳ございません。 ダイアログボックスから戻り値(指定されたパス) を取得する方法がわかりません。 お願いします。
- ishimatsu123
- ベストアンサー率42% (3/7)
商品コードと商品名の選択クエリーを作成し、 そのクエリーをCSV形式でエクスポートする。というのはいかがでしょうか?
補足
回答ありがとうございます。 少し説明漏れがあったようです。 CSV出力というコマンドボタンをクリックしたときに ポップアップのファイル名の保存という ダイアログボックスがでてそこからCSVファイルを保存 という具合に処理を進めたいのです。 お教えいただけますでしょうか?
お礼
返事が遅くなりまして大変申し訳ございません。 うまくいきました。ありがとうございました。
補足
すいませんもう1つだけお願いします。 名前を付けて保存のダイアログボックスを開くときに 最初に指定したフォルダを開く方法を教えてください。お願いします><