..|| Blog || Produkti/Storitve || MExcel || MDodatki || 300 nasvetov ||..

FTP & VBA

Pomoč pri izdelavi makrov

FTP & VBA

OdgovorNapisal/-a boskomajc » Če mar 29, 2007 10:13 am

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
boskomajc
 
Prispevkov: 7
Pridružen: Pe mar 17, 2006 9:46 am



Matjazev.NET
 

OdgovorNapisal/-a admin » Če mar 29, 2007 12:09 pm

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
admin
Site Admin
 
Prispevkov: 3492
Pridružen: Sr jul 20, 2005 10:06 pm

OdgovorNapisal/-a boskomajc » Če mar 29, 2007 12:31 pm

O super...lepa hvala za odgovor
boskomajc
 
Prispevkov: 7
Pridružen: Pe mar 17, 2006 9:46 am


Vrni se na VBA

Kdo je prisoten

Po forumu brska: 0 registriranih uporabnikov in 1 gost