こんにちは脇村です。僕のブログでは、本業での実務上のEXCEL、ACCESSマクロ&VBAの使えそうなコードの紹介、コールドリーディングの実践例、人生の難易度を下げる方法、自己啓発コラム、最近読んでいいなと思った本等について、主に発信していきたいと思っています。
今回はAccess VBAについて発信させてください。
こういったプログラム系統は何を実現したいかを強く頭に描くことが実現への第一歩につながります。
少しずつ発信していってその手助けができれば幸いだと思っています。
今回はAccessでカンマ区切りのCSVを書き出す時のVBAについてです。
Option Compare Database
Option Explicit
Sub MasterOrderMaterialSortcsvを書き出し()
Dim パス名 As String
Dim rs As New ADODB.Recordset
Dim varData() As Variant
Dim iintLoop As Integer
Dim lngFileNum As Long
'----CSVに書出し----
'出力先CSVファイルを開く
lngFileNum = FreeFile()
Open "パス名\ファイル名" For Output As #lngFileNum 'Output方式 '①
'クエリを開く
rs.Open "クエリ名", CurrentProject.Connection, adOpenDynamic, adLockOptimistic, adCmdTable '②
With rs
'クエリのフィールド数に合わせて配列サイズを定義
ReDim varData(rs.Fields.Count - 1)
'クエリを読み込むループ
Do Until .EOF
'1レコード分の全フィールドの読み込みループ
For iintLoop = 0 To rs.Fields.Count - 1
'1フィールド分の値を配列に代入
varData(iintLoop) = Nz(rs.Fields(iintLoop))
Next iintLoop
'配列をカンマで結合してCSVに出力
Print #lngFileNum, Join(varData, ",")
.MoveNext
Loop
.Close
End With
Close #lngFileNum
Set rs = Nothing
End Sub
①パス名は指定のパスを、CSV名はパス名の後に¥とCSV名を指定します。For Output As #lngFileNumのOutputは前あったデータをクリアして新たに書き込みます。OutputをAppendにすると前あったデータはクリアせずに追加でデータを書き込みます。
② “クエリ名”は書き出す対象のクエリ名またはテーブル名を書いてください。
以上、 Accessでカンマ区切りのCSVを書き出す時のVBAでした。変更箇所は①、②だけです。後はこのまま使って下さい。このプログラムは非常に汎用性が高いので、是非とも有効活用してください。
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
今回の記事はこれで締め切らせていただきます。 脇村の日常で役に立つ技術ー雑記ブログ記事、次回もよろしくお願い致します。
末筆ながら、本サイトのカテゴリーごとの記事です。
各記事の一番下の方に、関連記事のリンクが貼ってあるので、興味があれば参照お願い致します。
せどりで月商70万円達成する方法(ノーブランド品)
ダイナマイトモチベーションDM6「自分を愛すること」
日常のつぶやき―脇村(24年2月14日)
今の時代に必要な考え方(人間関係のトラブルを防ぐ方法)
コールドリーディング実践例その48
コールドリーディング講義(コールドリーディングの使えるフレーズ集)
おすすめ本「君しかいない!と言われる人になる」
今の時代を生き抜くために-脇村( 正社員と非正社員はどちらが得か)
Excel VBA L列規格半角文字にするVBA
電話占いの現場での嫌な質問が来た時について
Kindle本 (電子書籍)も出版しております。
タイトル:どんな女も口説き落とす話術!コールドリーディングの秘技
リンク: https://www.amazon.co.jp/ebook/dp/B0DD8R2SP5/
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆