返回列表 上一主題 發帖

請教有關ADODB.STREAM和Microsoft.XMLHTTP的用法

回復 9# 小俠客

直接將CSV檔,當作TABLE的另一種寫法...
  1. theCsvFolder = ThisWorkbook.Path & "\temp\"   '下載的CSV暫存資料夾,檔名則為【股票代號.csv】
  2. tbl = "PRICE_Daily"   ' ACCESS 裡存日成交資料的TABLE

  3.         strFields = "[Date],[Open],[High],[Low],[Close],[Volume],[Adj Close] as [AdjClose]"
  4.         strSQL = "INSERT INTO [" & tbl & "] SELECT " & 股票代號 & " as [StockID]," & strFields & " FROM [Text;Database=" & theCsvFolder & "].[" & 股票代號 & "#CSV]"

  5. cn.Execute strSQL
複製代碼
diabo

TOP

#10 的寫法,只能省一個步驟...

讀取資料 > 儲存成CSV >  (可省略)讀取CSV(可省略) > CSV直接寫入ACCESS > 刪除CSV的過程[code]
diabo

TOP

完整程式碼....
  1. Sub 將CSV檔資料寫入ACCESS()

  2.      Dim cn As ADODB.Connection
  3.    
  4.     '建立ADODB Connection物件變數
  5.      Set cn = New ADODB.Connection
  6.    
  7.      TARGET_DB = "TaiwanDB.mdb"
  8.      tbl = "PRICE_Daily"
  9.      股票代號 = "1101"
  10.      theCsvFolder = ThisWorkbook.Path
  11.    
  12.     '建立ACCESS(*.mdb)連結
  13.      cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  14.              "Data Source=" & ThisWorkbook.Path & "\" & TARGET_DB & ";" & _
  15.              "Persist Security Info=False"
  16.          
  17.      strFields = "[Date],[Open],[High],[Low],[Close],[Volume],[Adj Close] as [AdjClose]"
  18.      strSQL = "INSERT INTO [" & tbl & "] SELECT " & 股票代號 & " as [StockID]," & strFields & " FROM [Text;Database=" & theCsvFolder & "].[" & 股票代號 & "#CSV]"

  19.     '執行SQL command
  20.      cn.Execute strSQL
  21.      
  22.     '關閉ADODB connection
  23.      cn.Close
  24.      
  25.     '清除佔用記憶體
  26.      Set cn = Nothing

  27. End Sub
複製代碼
diabo

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題