请教各位大虾!

解决方案 »

  1.   

    Dim fld As ADODB.Field
       Dim strRow As String
       Dim strField As String
       Dim intPos As Integer   Set rsCustomers = New ADODB.Recordset   With rsCustomers
          ' 将 CustomerID 设置为主键。
          .Fields.Append "CustomerID", adChar, 5, adFldRowID
          .Fields.Append "CompanyName", adChar, 40, adFldUpdatable
          .Fields.Append "ContactName", adChar, 30, adFldUpdatable
          .Fields.Append "ContactTitle", adChar, 30, adFldUpdatable
          .Fields.Append "Address", adChar, 60, adFldUpdatable
          .Fields.Append "City", adChar, 15, adFldUpdatable
          .Fields.Append "Region", adChar, 15, adFldMayBeNull
          .Fields.Append "PostalCode", adChar, 10, adFldMayBeNull
          .Fields.Append "Country", adChar, 15, adFldUpdatable
          .Fields.Append "Phone", adChar, 24, adFldUpdatable
          .Fields.Append "Fax", adChar, 24, adFldMayBeNull
          ' 使用键集游标类型以允许更新记录。
          .CursorType = adOpenKeyset
          .LockType = adLockOptimistic
          .Open
       End With   Open "Customers.txt" For Input As #1   Do Until EOF(1)
          Line Input #1, strRow
          With rsCustomers
             .AddNew
             For Each fld In .Fields
                ' 如果找到一个 tab 分隔符,字段文本            ' 就在分隔符的左边。
                If InStr(strRow, Chr(9)) <> 0 Then
                   ' 将位置移动到 tab 分隔符。
                   intPos = InStr(strRow, Chr(9))
                   ' 将字段文本赋值给 strField 变量。
                   strField = Left(strRow, intPos - 1)
                Else
                   ' 如果没有找到 tab 分隔符,则字段文本
                   ' 是行中的最后一个字段。
                   strField = strRow
                End If            ' 去掉引号。
                If Left(strField, 1) = Chr(34) Then
                   strField = Left(strField, Len(strField) - 1)
                   strField = Right(strField, Len(strField) - 1)
                End If            fld.Value = strField            ' 从文本行中去掉字段值。
                strRow = Right(strRow, Len(strRow) - intPos)
                intPos = 0         Next
             .Update
             .MoveFirst
          End With
       Loop
       Close