Dateidownload per API

Manchmal kommt es vor, dass man einen oder mehrere Downloads durchführen muss. Normalerweise führt man diesen Download durch einen Klick auf den entsprechenden Link durch. Die Datei landet danach üblicherweise im Download-Ordner, von wo wir ihn dann zum gewünschten Ort verschieben. Wenn wir zuvor die URL der herunterzuladenden Datei kennen und auch wissen, in welchen Ordner und unter welchem Namen die Datei im System landen soll, können wir dies auch per VBA realisieren. Dazu benötigen wir nur eine einfache API-Funktion und ihren Aufruf.

Um einen einfachen Download zu realisieren, können wir die API-Funktion URLDownloadToFile nutzen. Diese deklarieren wir wie in Listing 1. Außerdem finden wir dort eine Funktion zur Vereinfachung des Aufrufs. Dieser brauchen wir nur noch die URL zu der herunterzuladenden Datei zu übermitteln sowie den Pfad der Zieldatei.

#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 Long, ByVal lpfnCB As LongPtr) As Long
#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 Long) As Long
#End If
Public Sub DownloadFile(strURL As String, strPath As String)
     Dim lngResult As Long
     lngResult = URLDownloadToFile(0, strURL, strPath, 0, 0)
     If lngResult = 0 Then
         MsgBox "Download erfolgreich!", vbInformation
     Else
         MsgBox "Download fehlgeschlagen!", vbCritical
     End If
End Sub

Listing 1: Die Deklaration der API-Funktion und eine Wrapper-Funktion

Ein solcher Aufruf könnte wie folgt aussehen:

DownloadFile "https://access-im-unternehmen.de/ aiu_1533.zip", CurrentProject.Path & "\aiu_1533.zip"

Wenn der Download erfolgreich war, landet die Datei genau im angegebenen Pfad.


Nur für Abonnenten

Ab hier wird’s wirklich spannend – der Rest ist exklusiv für Abonnenten.

Mit dem Abo von Access im Unternehmen bekommst du den kompletten Artikel – inklusive vollständigem Code, Beispieldatenbank und Schritt-für-Schritt-Erklärung.

So sparst du dir stundenlanges Herumprobieren, vermeidest teure Fehler in deiner Access-Anwendung und kannst Lösungen direkt in deinem Unternehmen einsetzen, statt nur darüber zu lesen.

Teste Access im Unternehmen jetzt 4 Wochen lang kostenlos: Voller Zugriff auf alle Artikel, Downloads und Beispieldatenbanken. Kein Risiko – wenn es für dich nicht passt, kündigst du einfach innerhalb der ersten vier Wochen.

Bereits Abonnent? Hier einloggen


Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →

Schreibe einen Kommentar