0
概述
我使用www.quandl.com免费的财务数据,试图预测资产价格变动使用URLMON API函数从Quandl.com数据下载到访问数据库,用VBA
方法
我已经构建了一个函数来使用quandl API下载数据。我正在声明位于urlmon.dll系统32文件夹中的Windows API函数。
代码
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (_
ByVal pCaller As LongPtr, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As LongPtr, _
ByVal lpfnCB As LongPtr) As LongPtr
#Else
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownLoadToFileA" (_
ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As LongPtr) As Long
#End If
Sub DownloadSingleFile()
Dim FileURL As String
Dim DestinationFile As String
FileURL = "https://www.quandl.com/api/v3/datasets/WIKI/FB/data.csv?"
DestinationFile = "C:\Users\hueve\Desktop\TheSystem\Fb.csv"
URLDownloadToFile 0, FileURL, DestinationFile, 0, 0
End Sub
问题
此代码的工作,这将数据下载到正确的文件的目标,我想知道如果有一种方法,而不是直接下载到文件位置;直接运行它到Access数据库表?我知道该函数明确指出它直接下载到一个文件,但是直接访问Access DB将是一件好事。此外,我知道旁边没有这些API函数,所以请放轻松
使用[DoCmd.TransferText]( https://msdn.microsoft.com/en-us/vba/access-vba/articles/docmd-transfertext-method-access)将csv导入Access表。完成后,删除csv文件。 – Parfait
我看过这样做,那将是我采取的一切路线失败的路线。我主要关心的是我计划下载10,000个或更多数据集到多个dbs的时间,但我不确定Docmd.transfettext的速度如何? – ZacAttack
这似乎是一个额外的步骤,创建一个文件,然后删除它? – ZacAttack