テキストファイルをインポートし、テーブルに格納するつもりですが、
どうやら改行コードが認識されていないようです。
フィールド区切りは問題ないのですが、改行コードを認識せず、ひとつのレコードとしてすべて読み込まれています。
該当部分ですが、
FileName = TestGetFileName 'ファイル指定のfunction
lngFileNum = FreeFile()
Open FileName For Input As #lngFileNum
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Order")
Do Until EOF(lngFileNum)
Line Input #lngFileNum, strData
varData = Split(strData, ",", , vbTextCompare) 'ここでカンマ区切りにしてるけど、改行コードが無視されているらしい
となっています。
元ファイルを書き換える方法なら動いたのですが、事情によりこの方法は使えません。
インポートした時点で処理したいのですが、どなたかおしえてください。
Scripting ライブラリの FileSystemObject を使用した例ですが、
Sub test() Filename = TestGetFileName 'ファイル指定のfunction Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Set dbs = CurrentDb Set rst = dbs.OpenRecordset("Order") For Each strData In Split(fso.OpenTextFile(Filename).ReadAll(), vbLf) varData = Split(strData, ",", , vbTextCompare) : : Next End Sub
という感じでできないでしょうか。
Line Input #は 改行コードまで読み込み、改行コード自体は 読み込まない仕様になっています。
なので 改行が含まれている文字列を読み込みしたい場合は、Getなどを用いて処理したほうがいいでしょう。
getで読み込んだことがないのでこの機会に試してみたいと思います。ありがとうございました。
Scripting ライブラリの FileSystemObject を使用した例ですが、
Sub test() Filename = TestGetFileName 'ファイル指定のfunction Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Set dbs = CurrentDb Set rst = dbs.OpenRecordset("Order") For Each strData In Split(fso.OpenTextFile(Filename).ReadAll(), vbLf) varData = Split(strData, ",", , vbTextCompare) : : Next End Sub
という感じでできないでしょうか。
さすがです!動きました!
回答のものをもうちょっと噛み砕いてみたいと思います。
さすがです!動きました!
回答のものをもうちょっと噛み砕いてみたいと思います。