写了一段Log事件记录的程序,目的是每天创建一个以日期命名的文件,记录当天的运行信息,但是我下面的代码存在一个问题,就是如果重新启动软件,该Log文件会重新创建,当天之前的运行记录全部丢失,请问如何实现当天重新运行软件后,事件记录接之前的记录继续往下写?
代码如下:
Option Explicit
Public dtSaveLog As Date
Public Sub StatusUpdate(ByRef pMessage As String)
    Dim FileName As String
    Dim FileNumber As Integer
    Dim sMsg As String
    sMsg = Now & " --> " & pMessage
    WriteLine sMsg
    FileName = App.Path & "\LOG\" & Format(Now, "yyyymmdd") & ".LOG"
    FileNumber = FreeFile
    On Error GoTo ErrorHandler
    If (Now - dtSaveLog) > 7 Then
       Open FileName For Output Shared As FileNumber
       dtSaveLog = Now
    Else
       Open FileName For Append Shared As FileNumber
    End If
            
    Print #FileNumber, sMsg
    Close #FileNumber
Exit Sub
ErrorHandler:
    Close #FileNumber
    WriteLine Now & " > " & "Error = " & Err.Number & ", " & Err.Description
    Err.Clear
    Resume Next
End Sub

解决方案 »

  1.   

    Open FileName For Append As FileNumber 
      

  2.   

    你改完后没生成exe,或者运行的仍是旧exe吧。
    Private Sub logtofile(s As String)
    Dim f As Integer
    On Error Resume Next
        f = FreeFile()
        Open "VB.LOG" For Append As #f
        Print #f, Format(Now, "YYYY-MM-DD hh:mm:ss") + " " + s
        Close #f
    End Sub
      

  3.   

    将Open FileName For Output Shared As FileNumber 
    中的output改为Append后问题解决,谢谢各位!