Vue d'ensemble
J'utilise des données financières www.quandl.com libres pour tenter de prédire les mouvements des prix des actifsUtilisation de l'API URLMON fonction pour télécharger des données à partir Quandl.com pour accéder à la base de données, en utilisant VBA
approche
J'ai construit une fonction pour télécharger les données en utilisant l'API quandl. Je déclare une fonction API Windows située dans le dossier du système urlmon.dll 32.
code
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
Problème
Ce code fonctionne, il télécharge les données vers la destination de fichier correct, je me demande s'il y a un moyen de au lieu de télécharger directement à un emplacement de fichier ; juste l'exécuter directement à une table DB Access? Je sais que la fonction indique explicitement qu'elle télécharge directement dans un fichier, mais il serait bien d'avoir un moyen d'aller directement à Access DB. Aussi je sais à côté de rien au sujet de ces fonctions api donc s'il vous plaît prendre facilement
Utilisez [DoCmd.TransferText] (https://msdn.microsoft.com/en-us/vba/access-vba/articles/docmd-transfertext-method-access) pour importer le fichier csv dans la table Access. Une fois cela fait, supprimez le fichier csv. – Parfait
J'ai jeté un oeil à faire cela, et ce sera la route que je prends tout le reste échoue. Ma principale préoccupation est le temps que je prévois de télécharger 10 000 ensembles de données ou plus à plusieurs dbs, je ne suis pas sûr de Docmd.transfettext en ce qui concerne la vitesse? – ZacAttack
Cela ressemble à une étape supplémentaire, de créer un fichier, puis de le supprimer ?? – ZacAttack