Automate FTP Download (copy) Via VBA (1 Viewer)

Kheribus

Registered User.
Local time
Today, 02:34
Joined
Mar 30, 2015
Messages
97
Hello all,

Is there any way to download (copy) a file from FTP to your PC via Access VBA?

Thanks,
B
 

ByteMyzer

AWF VIP
Local time
Today, 02:34
Joined
May 3, 2004
Messages
1,409
The ftpGet function shown below should do what you require.

Example usage:

Code:
ftpGet "ftp://ftp.myftphost.com/MyFolder/MyFile.docx", _
    "C:\MyFolder\MyFile.docx", _
    "MyUserName", "MyPassword"

Code:
[COLOR="Navy"]Public Sub[/COLOR] ftpGet( _
    [COLOR="Navy"]ByVal[/COLOR] strURL [COLOR="Navy"]As String[/COLOR], _
    [COLOR="Navy"]ByVal[/COLOR] strFileName [COLOR="Navy"]As String[/COLOR], _
    [COLOR="Navy"]Optional[/COLOR] varUser [COLOR="Navy"]As Variant[/COLOR], _
    [COLOR="Navy"]Optional[/COLOR] varPassword [COLOR="Navy"]As Variant[/COLOR])

    [COLOR="Navy"]Const[/COLOR] adTypeBinary = 1
    [COLOR="Navy"]Const[/COLOR] adSaveCreateOverwrite = 2
    [COLOR="Navy"]Const[/COLOR] adModeReadWrite = 3

    [COLOR="Navy"]Dim[/COLOR] objXml [COLOR="Navy"]As Object
    Dim[/COLOR] varBuffer [COLOR="Navy"]As Variant
    Dim[/COLOR] objStream [COLOR="Navy"]As Object

    Set[/COLOR] objXml = CreateObject("Microsoft.XMLHTTP")

    [COLOR="Navy"]If[/COLOR] IsEmpty(varUser) = [COLOR="Navy"]False And[/COLOR] _
       IsEmpty(varPassword) = [COLOR="Navy"]False Then[/COLOR]
        objXml.Open "GET", strURL, [COLOR="Navy"]False[/COLOR], varUser, varPassword
    [COLOR="Navy"]Else[/COLOR]
        objXml.Open "GET", strURL, [COLOR="Navy"]False
    End If[/COLOR]

    objXml.Send
    varBuffer = objXml.responseBody

    [COLOR="Navy"]Set[/COLOR] objStream = CreateObject("ADODB.Stream")
    objStream.Mode = adModeReadWrite
    objStream.Type = adTypeBinary
    objStream.Open

    objStream.Write (varBuffer)
    objStream.SaveToFile strFileName, adSaveCreateOverwrite

    [COLOR="Navy"]Set[/COLOR] objStream = [COLOR="Navy"]Nothing
    Set[/COLOR] objXml = [COLOR="Navy"]Nothing

End Sub[/COLOR]
 

Users who are viewing this thread

Top Bottom