請教有關ADODB.STREAM和Microsoft.XMLHTTP的用法
- 帖子
- 219
- 主題
- 24
- 精華
- 0
- 積分
- 243
- 點名
- 0
- 作業系統
- Windows10
- 軟體版本
- Office2016
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2012-4-18
- 最後登錄
- 2022-2-7
 
|
回復 1# 小俠客
試試!
Excel VBA:
ThisWorkbook貼上- Private Sub Workbook_Open()
- SaveCSV
- AccessModule
- Kill "D:\Sharestemp01\shareNo.csv"
- End Sub
複製代碼 Excel Module:貼上- Sub SaveCSV()
- Dim xml As Object
- Dim stream
- Dim URL As String
- Dim path As String
- path = "D:\Sharestemp01\"
- Set xml = CreateObject("Microsoft.XMLHTTP")
- Set stream = CreateObject("ADODB.stream")
- URL = "http://ichart.finance.yahoo.com/table.csv?s=" & "shareNo" & ".HK&a=09&b=27&c=2001&d=07&e=29&f=2012&g=d&ignore=.csv"
- xml.Open "GET", URL, 0
- xml.send
- With stream
- .Type = 1
- .Open
- .Write xml.responseBody
- If Dir(path & "shareNo" & ".csv") <> "" Then Kill (path & "shareNo" & ".csv")
- .SaveToFile (path & "shareNo" & ".csv")
- .Close
- End With
- Set stream = Nothing
- Set xml = Nothing
- End Sub
- Sub AccessModule()
- Dim A As Object
- Application.DisplayAlerts = False
- Set A = CreateObject("Access.Application")
- A.Visible = False
- A.OpenCurrentDatabase filepath:="D:\Shares\temp.mdb", Exclusive:=False, bstrPassword:=""
- A.Run "InPutData"
- Application.DisplayAlerts = True
- A.CloseCurrentDatabase
- A.Quit
- Set A = Nothing
- End Sub
複製代碼 Temp.mdb 新增Module:貼上- Option Compare Database
- Function InPutData()
- DoCmd.SetWarnings False
- DoCmd.TransferText acImportDelim, "", "Table", "D:\Sharestemp01\shareNo.csv", True, ""
- End Function
複製代碼 |
|
|
|
|
|
|
|
- 帖子
- 219
- 主題
- 24
- 精華
- 0
- 積分
- 243
- 點名
- 0
- 作業系統
- Windows10
- 軟體版本
- Office2016
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2012-4-18
- 最後登錄
- 2022-2-7
 
|
回復 4# 小俠客
[參考]
順序可改成:
下載CSV → 經過VBA整理加入代號 → 匯入Access。
至於下載後,依含有【代號】之檔案名稱給該檔新增一個【代號欄位】,這方面你可另外詢問先進,尋求解決方案;這部份我還沒學到。
∼ ^___^ ∼吐舌傻笑! |
|
|
|
|
|
|
|