- 帖子
- 55
- 主題
- 1
- 精華
- 0
- 積分
- 81
- 點名
- 0
- 作業系統
- win
- 軟體版本
- 10
- 閱讀權限
- 20
- 註冊時間
- 2016-5-15
- 最後登錄
- 2018-11-1
|
本帖最後由 koshi0413 於 2016-12-31 14:34 編輯
回復 10# PKKO
可否請p大協助一下,看小弟的語法是不是有問題
因為在跑 For j = 3 To rcnt << 最多會 3 to 10000 迴圈許久
za = cell(j,i) 是為了空格&字串判別,這好像不這樣的話導入日期都錯誤,還是可以這樣 str("2016/03/03") 這樣轉換成字串
至於導入sqlite3 是這行,開關一下就結束了,目前關卡在 迴圈太久 orz.....
Set cn = CreateObject("adodb.connection")
cn.Open ("Driver={SQLite3 ODBC Driver};database=" & SQLName)
cn.Close
Set cn = Nothing
ps:小弟是程式白痴,全自學的, python比較順手- Sub SQLite_insert()
- Sheets("SQL JOIN").Select
- SQLName = "D:\Dropbox\SQLite3\StockAll.sqlite"
- insert = "insert into StockAll values"
- ret = ""
- ret = insert
- et = 114 '導入的標題數
- rcnt = Range("A1").CurrentRegion.Rows.Count '計算所有的行
- For j = 3 To rcnt
- zc = ""
- For i = 1 To et
- za = Cells(j, i)
- If za = "" Then '空格轉換
- za = 0
-
- ElseIf i = 2 Then '日期轉換
- If (Len(Split(za, "/")(1)) = 1) And (Len(Split(za, "/")(2)) = 1) Then
- za = Split(za, "/")(0) & "-0" & Split(za, "/")(1) & "-0" & Split(za, "/")(2)
- ElseIf Len(Split(za, "/")(1)) = 1 Then
- za = Split(za, "/")(0) & "-0" & Split(za, "/")(1) & "-" & Split(za, "/")(2)
- ElseIf Len(Split(za, "/")(2)) = 1 Then
- za = Split(za, "/")(0) & "-" & Split(za, "/")(1) & "-0" & Split(za, "/")(2)
- Else
- za = Split(za, "/")(0) & "-" & Split(za, "/")(1) & "-" & Split(za, "/")(2)
- End If
-
- End If
- zc = zc & "'" & za & "',"
- Next i
- zc = Left(zc, Len(zc) - 1) '刪除最後一個","
- rez = "(" & zc & ")"
- ret = ret & rez & ","
- DoEvents
- Next j
- 'MsgBox "跑完迴圈"
- ret = Left(ret, Len(ret) - 1) '刪除最後一個","
- SqlImport = ret
-
- Set cn = CreateObject("adodb.connection")
- cn.Open ("Driver={SQLite3 ODBC Driver};database=" & SQLName)
- cn.Close
- Set cn = Nothing
- End Sub
複製代碼 |
|