'读取CSV文件'假设传入的参数strFile=C:\Documents and Settings\Administrator\桌面\TPA_Report1 - 副本.CSVPublic Function Read_CSVFile(strFile As String) As ADODB.RecordsetOn Error GoTo ErrH Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim conn As ADODB.Connection Set conn = New ADODB.Connection Dim strFilePath As String, strFileName As String Dim i As Integer i = Len(strFile) Do Until Mid(strFile, i, 1) = "\" '从后向前查找倒数第一个"\" i = i - 1 Loop strFilePath = Left(strFile, i - 1) '返回结果:C:\Documents and Settings\Administrator\桌面 strFileName = Mid(strFile, InStrRev(strFile, "\") + 1) '返回结果:TPA_Report1 - 副本.CSV conn.ConnectionString = "Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=" & strFilePath conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & "DBQ=" & strFilePath & ";", "", "" rs.Open "Select * From " & strFileName, conn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockReadOnly Set Read_CSVFile = rs Set rs = Nothing Set conn = Nothing Exit FunctionErrH: Set rs = Nothing Set conn = Nothing Set Read_CSVFile = NullEnd Function'------------------------------------------------------Private Sub ReadCsv() Dim rsData As New ADODB.Recordset 'CSV中的所有的数据 Dim strNote As String '取得CSV中所有的数据 Set rsData = Read_CSVFile(txtFileName.Text) If rsData.RecordCount > 0 Then DoEvents Dim iTotal As Integer iTotal = 0 'CNAPS号 银行名称 地址 rsData.MoveFirst Do While Not rsData.EOF '循环数据集 'UploadLog strNote = Val(Trim(rsData.Fields("CNAPS号"))) & "," & Trim(rsData.Fields("银行名称")) & "," & Trim(rsData.Fields("地址")) Debug.Print strNote iTotal = iTotal + 1 DoEvents rsData.MoveNext Loop End If '释放资源,否则CSV打开会是只读状态 rsData.Close Set rsData.ActiveConnection = Nothing Set rsData = Nothing Exit SubEnd Sub