VB6.0 讀取CSV文件


最近做了一個Upload文件的需求,文件的格式為CSV,讀取文件的方法整理了一下,如下:

1、先寫了一個讀取CSV文件的Function:

 1 '讀取CSV文件
 2 '假設傳入的參數strFile=C:\Documents and Settings\Administrator\桌面\TPA_Report1 - 副本.CSV
 3 Public Function Read_CSVFile(strFile As String) As ADODB.Recordset
 4     Dim rs As ADODB.Recordset
 5     Set rs = New ADODB.Recordset
 6     Dim conn As ADODB.Connection
 7     Set conn = New ADODB.Connection
 8     Dim strFilePath As String, strFileName As String
 9     Dim i As Integer
10     i = Len(strFile)
11     Do Until Mid(strFile, i, 1) = "\" '從后向前查找倒數第一個"\"
12         i = i - 1
13     Loop
14     strFilePath = Left(strFile, i - 1) '返回結果:C:\Documents and Settings\Administrator\桌面
15     strFileName = Mid(strFile, InStrRev(strFile, "\") + 1) '返回結果:TPA_Report1 - 副本.CSV
16 
17     conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _
18                 "DBQ=" & strFilePath & ";", "", ""
19     
20     rs.Open "select * from [" & strFileName & "]", conn, adOpenStatic, _
21                 adLockReadOnly, adCmdText
22     Set Read_CSVFile = rs
23     Set rs = Nothing
24     Set conn = Nothing
25 End Function

2、調用上面的Function:

 1 Private Sub cmdUpload_Click()
 2     Dim rsData As ADODB.Recordset 'CSV中的所有的數據
 3     Dim rsUploadLog As ADODB.Recordset '上傳紀錄
 4 
 5     '取得CSV中所有的數據
 6     Set rsData = Read_CSVFile(txtFileName.Text)
 7     
 8     If rsData.RecordCount > 0 Then
 9         DoEvents
10         Dim iTotal As Integer
11         iTotal = 0
12         
13         rsData.MoveFirst
14         Do While Not rsData.EOF '循環數據集
15             'UploadLog
16             rsUploadLog.AddNew
17             rsUploadLog!Row = iTotal + 1
18             rsUploadLog!Createby = sUserID
19             rsUploadLog!CreateDate = dServerdateTime
20             rsUploadLog!Note = rsData.Fields("投保人名字") & "" '“投保人名字”為CSV文件的表頭
21             iTotal = iTotal + 1
22             DoEvents
23             rsData.MoveNext
24         Loop
25                 
26         '一批數據里面有的成功,有的失敗.進行保存的時候,成功的就保存更新,不成功的就不保存
27         If Not BatchSaving(conn, rsUploadLog) = True Then
28             MsgBox "Upload un-successfully done", vbInformation, sApplicName
29         Else
30             MsgBox "Upload successfully done", vbInformation, sApplicName
31         End If
32     End If
33     '釋放資源,否則CSV打開會是只讀狀態
34     rsData.Close
35     Set rsData.ActiveConnection = Nothing
36     Set rsData = Nothing
37     Exit Sub
38 End Sub

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM