|
yuk_yu 发表于 2013-1-21 11:09 ![](static/image/common/back.gif)
版主,能否用其他办法读取?我的数据例如:0110读取后变为110就完全没有意义了。可以用二进制先读取到数组 ... - Sub 联合查询后导入() 'VBA中测试通过
- '引用Microsoft ActiveX Data Objects 2.x Library
- 'VB6批量读取CSV文件到access?
- 'http://club.excelhome.net/thread-973334-1-1.html
- Dim xlapp As Object
- Dim cnn As New ADODB.Connection
- Dim rs As New ADODB.Recordset
- Dim myPath$, MyFile$, myTable$, SQL$, s$(), i&, a, strFormID$, strFormType$
- Set xlapp = GetObject(, "Excel.Application") 'VB6中
- myTable = "BackflushRecord"
- myPath = xlapp.ActiveWorkbook.Path & ""
- cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" & myPath & "Database.accdb" '连接数据库
- rs.Open myTable, cnn, adOpenKeyset, adLockOptimistic
- MyFile = Dir(myPath & "*.csv")
- With rs
- Do While MyFile <> ""
- strFormID = Mid(MyFile, 10, 7)
- strFormType = Mid(MyFile, 1, 8)
- Open myPath & MyFile For Input As #1
- s = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
- Close #1
- For i = 0 To UBound(s) - 1 '-1忽略最后一行空格
- a = Split(s(i), ",")
- .AddNew
- .Fields("FormID") = strFormID
- .Fields("FormType") = strFormType
- .Fields("ModelName") = a(0)
- .Fields("ProductionLine") = a(1)
- .Fields("OutPutQty") = a(2)
- .Fields("ModelVersion") = a(3)
- .Update
- Next
- MyFile = Dir()
- Loop
- End With
- MsgBox "已经成功将文本文件数据保存为数据库!", vbInformation
- rs.Close
- cnn.Close
- Set rs = Nothing
- Set cnn = Nothing
- End Sub
复制代码 |
|