| 
    
     |  | ▼小僧様 皆様 すいません。
 小僧様より戴いたサンプルを実行しました。
 Sub test2()
 Const strFilePath = "C:\Documents and Settings\UserName\デスクトップ\EventLogAccess\eventlog\20091208.csv"
 Dim FNo As Long
 Dim txtData As String
 Dim arrData As Variant
 Dim i As Long
 
 FNo = FreeFile
 Open strFilePath For Input As #FNo
 
 Line Input #FNo, txtData
 
 i = 2
 Do While Not EOF(FNo)
 
 Line Input #FNo, txtData
 
 arrData = Split(txtData, ",")
 
 If InStr(1, arrData(7), "  ") = 0 Then
 MsgBox i & "行目にスペース4つがありません" _
 & vbCrLf & vbCrLf & "DATA:" & arrData(7)
 GoTo ExitEXE
 End If
 i = i + 1
 Loop
 
 ExitEXE:
 Close #FNo
 
 End Sub
 
 上記プログラムを実行した結果、271行目(最終行)が半角4つ分の空白ではない行ですというエラーになりました。
 
 >それとも271行目でデータは終わっているのに
 >Loop を抜けないでエラーが出てしまうのでしょうか。
 ↑これです。270行目までしかデータはないのです。
 が、271行目もみにいってしまっています。
 ※ちなみに、271行目を削除して実行してみるとエラーはおきませんでした。
 
 >現在どの様なコードで実験を行っているのかが解りませんが、
 >少なくともご提示されたコードの中では
 >エラールーチンで Rollback している訳ですから
 >データが入る事はありえないですよね。
 Sub Test()
 Dim txtData As String, FNo As Long, arrData, i As Integer
 Dim Con As New ADODB.Connection, Rec As New ADODB.Recordset
 
 Set Con = CurrentProject.Connection
 Rec.Open "INPUTDATA", Con, adOpenDynamic, adLockOptimistic
 
 FNo = FreeFile
 Open "C:\Documents and Settings\UserName\デスクトップ\EventLogAccess\eventlog\20091208.csv" For Input As #FNo
 'ファイルの1行目の項目名部分を読み込む(何も処理しない)
 Line Input #FNo, txtData
 
 
 '実際のデータ部分(2行目)からの処理
 Do While Not EOF(FNo)
 Line Input #FNo, txtData
 arrData = Split(txtData, ",")
 Rec.AddNew
 '引用符を削除してからフィールドに値を代入する
 
 Rec("Date") = Split(arrData(2), " ")(0)
 Rec("Time") = Split(arrData(2), " ")(1)
 Rec("ComputerName") = arrData(4)
 Rec("Description1") = Split(arrData(7), "  ")(0)
 Rec("Description2") = Split(arrData(7), "  ")(1)
 
 Rec.Update
 Loop
 
 Close #FNo
 
 End Sub
 上記プログラムで実験しておりました。
 なので、ロールバックはせず、エラー以外のデータが入るようになっておりました。すいません。
 
 【質問内容1.】に関しては解決したのでしょうか?
 まだ解決しておりません。質問内容2がきになり、手がつけれていない状態です。
 
 
 |  |