このタイプのコーディングにコーディングするとき、私は初心者です。私が根本的に間違っていることと、それを修正する方法を理解するのを手伝ってください。
2 つの温度測定値と圧力測定値のログ ファイル (テキスト ファイル) を保持するプログラムがあります。find 演算子などを使用できるように、レコードセットでファイルを開きました (これは初めて機能します)。私が直面する問題は、古い読書をアーカイブしようとするときです。コードのスニペットを添付しました:
ファイルは最初にこのコマンドで開かれました
rs.Open("SELECT Date, Pressure, Temp1, Temp2 FROM Env_Log_Overall.txt", connCSV, adOpenStatic, adLockOptimistic, adCmdText)
このスニペットでエラーが発生します。
Call purgeRecords(cleanRecords, rs) ' Copies all records from the archived record on to a temp file which gets renamed to be the original file
connCSV.Close()
connCSV.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\EnvironmentLogs\;Extended Properties='text;HDR=YES;FMT=Delimited'")
rs.Open("SELECT Date, Pressure, Temp1, Temp2 FROM Env_Log_Overall.txt", connCSV, adOpenStatic, adLockOptimistic, adCmdText) ' This is where the error is occurring
' Not sure if it is the way the file is being populated or the copyfile does something
rs.MoveFirst()
これは呼び出される Sub です。
Private Sub purgeRecords(cleanRecords As Integer, rs As ADODB.Recordset)
Dim tempFileName As String = "C://EnvironmentLogs//Env_Log_Overall_temp.txt"
Dim logFileName As String = "C://EnvironmentLogs//Env_Log_Overall.txt"
rs.Move(cleanRecords)
Dim tempFileLogs As Object = My.Computer.FileSystem.OpenTextFileWriter(tempFileName, False)
tempFileLogs.WriteLine("Date, Pressure, Temp1, Temp2")
Do
tempFileLogs.WriteLine(rs(0).Value.ToString & ", " & rs(1).Value.ToString & ", " & rs(2).Value.ToString & ", " & rs(3).Value.ToString)
rs.MoveNext()
Loop While Not rs.EOF
tempFileLogs.close()
rs.Close()
My.Computer.FileSystem.DeleteFile(logFileName)
My.Computer.FileSystem.CopyFile(tempFileName, "C:\EnvironmentLogs\Env_Log_Overall.txt", True)
End Sub
私が直面している問題は、一時ファイルを作成してコピーした後、SELECT フィールドを含むレコードセットとしてファイルを開くことができないことです。SELECT * でのみ開き、以前のように SQL コマンドを実行できません。