先给下我的代码,代码还没设计到Log
Sub InsertData(ByVal mo As String, ByVal lh As String, ByVal Mat_Code As String, ByVal Loc As String, ByVal Status As String)
  Dim AdoConnect As ADODB.Connection
  Set AdoConnect = New ADODB.Connection
  ConnStr = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=tpco1;PassWord=tpco1;Data Source=L2DB"
  AdoConnect.ConnectionString = ConnStr
  AdoConnect.Open
  Dim sql As String
  sql = "insert into erp_check_charge(mo,heat_no,gma_mat_code,location,status)" + _
        " values(" + "'" + mo + "','" + lh + "','" + Mat_Code + "','" + Loc + "','" + Status + "')"
  AdoConnect.Execute sql
  AdoConnect.Close
End Sub也就是我通过上面过程象Oracle表中插入数据。
请问:如果,那条数据有问题了,比方说其中的一个字段出了问题,如何将词记录写进Log文件?

解决方案 »

  1.   

    专门写个记录log的方法,然后在你的代码中添加错误陷阱,如果有错误的话,调用记录log的方法就可以了。Public Sub WriteLog(pText As String, pFilename As String)
    On Error GoTo ErrorHandler
    Dim fnum As Integer
    Dim isopen As Boolean
    Dim colError As New Collection
    fnum = FreeFile()
    Open pFilename For Append As #fnum
    isopen = True
    Print #fnum, pText
    ErrorHandler:
    If isopen Then Close #fnum
    colError.Add "(" & Err.Number & ") " & Err.Description
      

  2.   

    Sub InsertData(ByVal mo As String, ByVal lh As String, ByVal Mat_Code As String, ByVal Loc As String, ByVal Status As String)
    On Error GoTo ErrorHandler
      Dim AdoConnect As ADODB.Connection
      Set AdoConnect = New ADODB.Connection
      ConnStr = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=tpco1;PassWord=tpco1;Data Source=L2DB"
      AdoConnect.ConnectionString = ConnStr
      AdoConnect.Open
      Dim sql As String
      sql = "insert into erp_check_charge(mo,heat_no,gma_mat_code,location,status)" + _
            " values(" + "'" + mo + "','" + lh + "','" + Mat_Code + "','" + Loc + "','" + Status + "')"
      AdoConnect.Execute sql
      AdoConnect.Close
    exit sub
    ErrorHandler:
    WriteLog(Err.Description,"errlog.log")
    End Sub
      

  3.   

    记录到文本文件就可以了,时间、用户、SQL语句等