ACCESS2010 を使用しています。
先日、標題「ACCESS 同じ種類のレコードを1行に纏め、CSVファイルで出力したい」にて
CSVファイルの書出し方法を下記のとおり教えて頂きました。
ファイルの出力先を、ダイアログで指定できるようにしたいのですが、どのように
直せばよろしいでしょうか。javascript:void 0;
Private Sub コマンド0_Click()
Dim i As Integer
Dim strSQL As String
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim OutData As String
Dim kind As String
strSQL = "SELECT * from M159 ORDER BY 組店コード,行番号"
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strSQL, dbOpenForwardOnly)
kind = ""
OutData = ""
Open "C:\Users\yukie\Desktop\test.csv" For Output As #1 ' 出力モードで開きます。
With rst
Do While Not .EOF ' レコードが無くなるまで繰り返します。
If !組店コード <> kind Then
If OutData <> "" Then
Print #1, Mid(OutData, 2)
End If
kind = !組店コード
OutData = ""
End If
For i = 0 To .Fields.Count - 1
OutData = OutData & "," & .Fields(i)
Next
.MoveNext
Loop
If OutData <> "" Then
Print #1, Mid(OutData, 2)
End If
End With
Close #1 '
No.4ベストアンサー
- 回答日時:
私の環境(windows10, office2007pro)では、
Application.FileDialog(msoFileDialogFolderPicker)
を改行した段階で、
The library which contains this symbol is not referenced by the current...
というmsgboxが出てきて、「はい」をクリックすると、
microsoft office 12.0 object libraryの参照設定にチェックが入ります。
ので、VBAエディターの「ツール」「参照設定」で
microsoft office 12.0 object library
にチェックを入れて、OKを押すと動くようになるのではないかと思います。
No.3
- 回答日時:
すみません。
¥マークが一つ抜けているようです。Open strPath &”\test.csv" For Output As #1
としてください。
デバックボタンを押下したら、
With Application.FileDialog(msoFileDialogFolderPicker)
のところが黄色なっていました。
No.2
- 回答日時:
えーと、、、
例えば、そのまま使うとすると、、、
①冒頭の宣誓一覧に
dim strPath as string
を加えておいて、
②OutData = "" の後に付け加えて、
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = True Then
strpath= .SelectedItems(1)
else
strpath = "" '本来は、ここでキャンセル処理をするべき
End If
End With
としておき、
③オープンステートメントを以下のように変更する
Open strPath &”test.csv" For Output As #1
となんとなくできるような予感がしますが、、、
試していないので、断言はできませんので動かなかったらあしからず、同サイトで紹介されているAPI等他の方法を利用しないとダメかもしれません。
ShowMeHowさん。親切丁寧にありがとうございます。
早速、やってみましたが、以下のエラーが表示されてしまいました。
「'fileDialog' メソッドは失敗しました '_Applcation'オブジェクト」
前提条件みたいなものはありますか。
No.1
- 回答日時:
Open "C:\Users\yukie\Desktop\test.csv" For Output As #1 ' 出力モードで開きます。
ここのフルパスのファイル名をfiledialog objectを使って、パスを選択させるのがらくかな。
http://officetanaka.net/excel/vba/tips/tips39.htm
ご回答ありがとうございます。
教えて頂いたURLを拝見しましたが、勉強不足のため、理解できませんでした。
もう少し、勉強します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AccessからExcelのファイルを起...
-
動的にSPOOLファイルのファイル...
-
共有フォルダに誰が何にアクセ...
-
アクセスがインポートできる容...
-
teraterm から起動したプログラ...
-
#1062 - '0' は索引 'PRIMARY' ...
-
「○○○.ldb」のAccess レコード ...
-
Access2007でldbファイルが...
-
CSVでの頭に”0”の入る数字の項...
-
ビープ音の消し方
-
Androidのマルチユーザーでモン...
-
(Excelマクロ)datファイルをエ...
-
Access VBA を利用して、フォル...
-
batファイル、コマンドプロンプ...
-
100万行のCSVを10万行ずつのフ...
-
一時ファイルが消えない。
-
テキストボックス名を変数で指...
-
ACCESSの起動エラー
-
特定のフォルダに入れたファイ...
-
AccessでUTF-8のtxtデータを出力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLPLUSで結果を画面に表示しない
-
selectした結果の余計な余白を...
-
AccessからExcelのファイルを起...
-
動的にSPOOLファイルのファイル...
-
dmpファイルをインポートせずに...
-
ORACLEから各テーブルをCSV形式...
-
DB2のコマンドラインexportで複...
-
ストアドプロシージャの出力に...
-
Oracleでインスタンスを複数に...
-
PLSQLでファイルに書き込みをし...
-
レポートをpdfに変換する方法
-
mod_plsql使用時のDBMS_OUTPUT....
-
Accessのレポート出力をWordに...
-
SQLServer2005でSELECTした結果...
-
sqliteはExcelと連携できますか?
-
sqlplusの操作をシェル上で
-
batファイルからsql文実行
-
SQL*PLUSで 定期的にSQLを発行...
-
プロファイラを裏で実行継続す...
-
検索結果をファイルに出力する...
おすすめ情報