FTP & VBA

Pomoč pri izdelavi makrov
Odgovori
boskomajc
Prispevkov: 7
Pridružen: Pe Mar 17, 2006 9:46 am

FTP & VBA

Odgovor Napisal/-a boskomajc »

Pozdravljeni,

zanima me na kak način bi lahko iz VBA uploudal oz. downloadal datoteke (naprimer .txt) na FTP server.
Torej preko katerega ukaza poteka procedura povezovanja do serverja in kako potem s serverjem komuniciramo....

Hvala za odgovor
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Najlažje boste to dosegli, če uporabite objekt, ki se skriva v datoteki
MSINET.OCX. To je MS datoteka, ki jo dobite ob različnih MS produktih, kot so VB, Studio in podobni. Poglejte v Windows mapo ali to datotekoimate. Če je nimate lahko po internetu poiščete, kje bi jo našli. (Lahko si jo naložite tudi tukaj: http://www.2ocx.com/show.php?ocx=msinet.ocx).

Če datoteko imate, potem je verjetno že tako ali tako registrirana, sicer pa jo morate še registrirati. Postavite se v mapo, kjer se datoteka nahaja in napišite

Koda: Izberi vse

regsvr32 MSINET.OCX
Odprite VBA urejevalnik in izberite Tools/References, ter kliknite gumb Browse... in izberite prej omenjeno datoteko.

Tako, sedaj imate vse pripravljeno.

Koda za dowload je sledeče:

Koda: Izberi vse

// Avtor: OfficeOne
Function  DownloadFile(ByVal HostName  As String, _
    ByVal UserName As String, _
    ByVal Password As String, _
    ByVal RemoteFileName As String, _
    ByVal LocalFileName As String) As Boolean

    Dim FTP As Inet

    Set FTP = New Inet
    With FTP
        .Protocol = icFTP
        .RemoteHost = HostName
        .UserName = UserName
        .Password = Password
        .Execute .URL, "Get " + RemoteFileName + " " + LocalFileName
        Do While .StillExecuting
            DoEvents
        Loop
        DownloadFile = (.ResponseCode = 0)
    End With
    Set FTP = Nothing
End Function 
Za upload pa sledeča:

Koda: Izberi vse

// Avtor: OfficeOne
Function UploadFile(ByVal HostName  As String, _
    ByVal UserName As String, _
    ByVal Password As String, _
    ByVal LocalFileName As String, _
    ByVal RemoteFileName As String) As Boolean

    Dim FTP As Inet

    Set FTP = New Inet
    With FTP
        .Protocol = icFTP
        .RemoteHost = HostName
        .UserName = UserName
        .Password = Password
        .Execute .URL, "Put " + LocalFileName + " " + RemoteFileName
        Do While .StillExecuting
            DoEvents
        Loop
        UploadFile = (.ResponseCode = 0)
    End With
    Set FTP = Nothing
End Function 
lp,
Matjaž Prtenjak
Administrator
boskomajc
Prispevkov: 7
Pridružen: Pe Mar 17, 2006 9:46 am

Odgovor Napisal/-a boskomajc »

O super...lepa hvala za odgovor
Odgovori