はじめまして。
【Access2003】を使用し、タブ区切りのテキストファイル読込をVBAで行っています。
カンマ区切りはわかるのですが、タブ区切りの方法がわからないので教えていただけませんか?
TransferTextを使用したかったのですが、読み込んだデータ1件1件に対して必須と桁数確認を行い、エラーがあった場合はテキストファイルにそのデータ1行を書き込み、エラーがない場合は1行テーブルに書き込みというように処理を分けたいからなのです。
とりあえず今のところカンマ区切りのCSVファイルを読み込むというようにしており、読み込む前にタブ区切りテキストファイルをカンマ区切りCSVファイルに変換する処理を入れようと思っています。
しかしタブ区切りテキストファイルをそのまま読むことができれば一番いいのですが。
ソースは以下の通りです。
'出力元CSVファイルを開く
lngFileNum = FreeFile()
'データ読込
Open strJsnFol & "\\" & strIriInf For Input As #lngFileNum
'CSVファイルの最初の行を読み込む
'CSVファイルより1件分を読み込み
Line Input #lngFileNum, strData
'カンマで区切って配列に代入
varData = Split(strData, ",", , vbTextCompare)
'データ種別のチェック
If varData(0) <> "XXX" Then
MsgBox "ファイルエラーです。", vbInformation + vbOKOnly
intErrFlg = 1
Exit Sub
End If
'タイムスタンプチェック
strSQL = " SELECT CREATE_TIME FROM TB WHERE CREATE_TIME = '" & varData(1) & "'"
'SQLを実行
If DBAC.ExecSelect(strSQL) = 0 Then
'同じ処理時間のデータがなければ、タイムスタンプを取得
strCreateTime = varData(1)
Else
MsgBox "すでに処理済です。", vbInformation + vbOKOnly
intErrFlg = 1
Exit Sub
End If
'テーブルを開く
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("IF_TB")
'CSVファイルの全レコードを読み込むループ
Do Until EOF(lngFileNum)
'CSVファイルより1件分を読み込み
Line Input #lngFileNum, strData
'カンマで区切って配列に代入
varData = Split(strData, ",", , vbTextCompare)
'データチェック
If varData(0) = "" Or Len(varData(0)) > 12 Then
intChkErr = 1
End If
If varData(1) = "" Or Len(varData(1)) > 12 Then
intChkErr = 1
End If
If Len(varData(2)) > 1 Then
intChkErr = 1
End If
'エラーがあればエラーファイルに書き込み
If intChkErr <> 0 Then
strFileName = strJsnFol & "\\" & "ERR.csv"
lngFileNum2 = FreeFile()
Open strFileName For Append As #lngFileNum2
End If
Print #lngFileNum2, "ERR1," & strData
Close #lngFileNum2
Else
'各フィールドデータをテーブルに追加
With rst
.AddNew
!K_NO = varData(0)
!S_NO = varData(1)
!CD = varData(2)
!CREATE_TIME = strCreateTime
.Update
End With
End If
intChkErr = 0
Loop
rst.Close
Close #lngFileNum
Exit Sub
何かいい方法があれば教えていただけませんか?
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAでMSアクセスに、Tab区切りのテキストを入力できますか??
その他(データベース)
-
Accessデータをテキスト変換する時、小数点以下の桁数が切れてしまう
Excel(エクセル)
-
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
-
4
ACCESS ADOでupdateが効かない
その他(データベース)
-
5
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
6
ACCESSで毎回CSVファイルをテーブルにインポートする
その他(データベース)
-
7
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
8
VBAでtxtファイルを読み込む際にtabを認識したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
【エクセル】改行無しテキスト...
-
タブの色を変更する方法
-
VBAコードを張り付け後のエクセ...
-
batファイルでrenameができませ...
-
close()で例外が投げられる理由
-
vba dir の相対パス
-
MATLABのm-fileについて
-
文字列をカウントする方法
-
至急お願いします。C言語で.img...
-
一定時間が経過したフォルダの削除
-
JavaでCSVファイルを高速に読む...
-
画像アップロード機能を追加し...
-
csvファイルの横方向への改行に...
-
Perlで特定行から特定行までを...
-
perlのエディタでおすすめを教...
-
フォルダ内のファイルを全て開...
-
PICでFatFsでオープンした内容...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルの作り方(CSV→...
-
C言語で特定の行を抽出する方法...
-
【エクセル】改行無しテキスト...
-
タブの色を変更する方法
-
Edge スクレイピング
-
全角と半角文字が混在している...
-
空白文字 \\f と\\v の違いに...
-
htaccessで特定のディレクトリ...
-
デルファイ TabControl タブの...
-
Arduino Excel
-
VBAでタブ区切りテキストの保存...
-
VBAのFileFormatで悩んでいるこ...
-
【Access2003】VBAでタブ区切り...
-
C++でファイルから複数行のデー...
-
テキストファイル(tsv)を改行...
-
PHPで掲示板を作りたいです
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
おすすめ情報