Come scaricare un file FTP mediante Access

tramite: O2O
Difficoltà: media
16

Introduzione

Se state leggendo questa guida è perché ogni giorno dovete scaricare decine di file mediante FTP e magari importarli manualmente sul vostro DB Access.  Qui cercherò di spiegare brevemente come creare dei processi in VBA che vi permetta di automatizzare il caricamento. Il codice che sto per descrivere è essenziale, da qui sarete voi ad adattarlo alle vostre esigenze.

26

Occorrente

  • Microsoft Office
36

Per iniziare diamo per scontato che siamo già in possesso di Microsoft Office, che conosciamo già Access e che siamo abbastanza pratici di VBA. Data questa premessa iniziamo con:
-Importare librerie Outlook
1. Apriamo la console di scrittura codice (Alt+F11)
2. Strumenti->Riferimenti
3. Spuntare la voce “Microsoft ActiveX DataObjects 2.1 Library”
4. OK
-accertiamoci di non avere chiusure sul firewall, o di aver creato una regola di apertura del traffico per il nostro indirizzo FTP
-creare una regola di importazione su Access
1. Importa da dati esterni
2. Selezionare il file che si vuole caricare 3. Definire la formattazione del file 4. Salvare con nome la regola

Siamo pronti per scrivere il codice.

46


Per prima cosa creiamo una maschera in cui inserire i dati principali che ci occorrono per connetterci al server FTP:
-Host name: nome o indirizzo del server FTP
-Percorso e nome File
-Username
-Password
-Porta se occorre

Dopo aver creato la maschera andremo a definire due funzioni:
-DownloadFTPFile: per il download e il caricamento dei file
-ShellWait: per l’esecuzione di script da DOS

Partiamo dall’ultima. La ShellWait è una funzione che ci permette di eseguire script DOS passando direttamente il controllo al sistema operativo. Riporto la funzione per intero:
• Public Sub ShellWait (Pathname As String, Optional WindowStyle As Long)
• If EnableHandler Then On Error GoTo Err_Handler

• Dim proc As PROCESS_INFORMATION
• Dim start As STARTUPINFO
• Dim ret As Long

• ' Initialize the STARTUPINFO structure:
• With start
•. Cb = Len (start)
• If Not IsMissing (WindowStyle) Then
•. DwFlags = STARTF_USESHOWWINDOW
•. WShowWindow = WindowStyle
• End If
• End With
• ' Start the shelled application:
• ret& = CreateProcessA (0&, Pathname, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)
• ' Wait for the shelled application to finish:
• ret& = WaitForSingleObject (proc. HProcess, INFINITE)
• ret& = CloseHandle (proc. HProcess)

• Exit_Here:
• Exit Sub
• Err_Handler:
• MsgBox Err. Description, vbExclamation, "E R R O R"
• Resume Exit_Here

• End Sub

In questo caso non abbiamo definito un tempo limite per il dowload (wait INFINITE) ma è possibile definire il tempo in millisecondi. La documentazione online aiuta a personalizzare il tutto.
Passando attraverso il sistema operativo possiamo utilizzare la funzione FTP del DOS, senza incorrere in problemi di librerie e rendendo questo codice utilizzabile in tutte le versioni di Access.

Continua la lettura
56

Andiamo ora a scrivere la funzione vera e propria. Qui verrà esposto solo l’essenziale, i controlli sul formato e i virtuosismi li lascio fare a voi. La definizione della funzione sarà:

- Public Function DownloadFTPFile (ByVal FileDaScaricare As String, HostServer As String, Folder As String, UserID As String, Password As String, LocalFolder as String)

Spieghiamo le variabili passate come parametro più altre presenti nella funzione:
- FileDaScaricare: nome del file da scaricare
- HostServer: indirizzo del server FTP
-Folder: percorso sul server FTP dove è presente il file
-UserID: username per accedere al server
-Password-Intero FileScript: identificatore del file in cui scriveremo lo script di download
-String Target: q & LocalFolder & "\" & FileDaScaricare & q
-String Execution

Una volta definite le variabili ecco il pezzo forte che scrivo per intero:
-FileScript = FreeFile
-Open sScrFile For Output As FileScript
-Print #FileScript, "open " & HostServer
-Print #FileScript, UserID
-Print #FileScript, Password
-Print #FileScript, "cd " & Folder
-Print #FileScript, "binary"
-Print #FileScript, "lcd " & q & LocalFolder & q
-Print #FileScript, "get " & FileDaScaricare & " " & Target
-Print #FileScript, "bye"
-Close #FileScript
-Execution = Environ$("COMSPEC")
-Execution = Left$(Execution, Len (Execution) - Len (Dir (Execution)))
-Execution = Execution & "ftp. Exe -s:" & q & sScrFile & q
-ShellWait Execution, vbHide
-DoEvents
-Kill (FileScript) ‘’’’’’’’cancelliamo il file

Nel codice sopra viene creato uno script DOS che viene eseguito dal sistema operativo. I comandi sono quelli della funzione FTP di DOS, potete modificare lo script a vostro piacimento, in rete trovate la documentazione.

A questo punto il file è presente nella cartella di destinazione e possiamo importare i dati mediante:
-DoCmd. TransferText acImportFixed, “regolaDiImportazione”, "tabellaDestinazione”, Target, False

Io preferisco creare una regola di importazione in una tabella nuova temporanea che cancello prima di ogni importazione. I dati poi li inserisco nella tabella definitiva.
Come detto ho cercato di descrivere l’essenziale, da qui sarete voi a pensare alle svariate applicazioni. Io personalmente devo scaricare tutti i giorni centinaia di file da decine di percorsi FTP diversi. Per farlo tengo una tabella con l’elenco di tutti i file e percorsi in cui aggiorno la “Data di Ultimo Download” e poi vado a scaricare solo i file con “Data Update” (dato presente nel server ftp) > della “Data di Ultimo Download”, poi schedulo il processo che gira 2 volte al giorno. Se avete dubbi scrivetemi.

66

Consigli

Non dimenticare mai:
  • Verificare di avere i permessi per il download FTP

Potrebbe interessarti anche

Segnala contenuti non appropriati

Tipo di contenuto
Devi scegliere almeno una delle opzioni
Descrivi il problema
Devi inserire una descrizione del problema
Si è verificato un errore nel sistema. Riprova più tardi.
Verifica la tua identità
Devi verificare la tua identità
chiudi
Grazie per averci aiutato a migliorare la qualità dei nostri contenuti

Guide simili

Windows

Come scaricare file da XDCCMule

In rete sono presenti molti programmi per scaricare i file come ad esempio video, musica o tanto altro. In questa guida vedremo un programma in particolare che prende il nome di XDCCMule. I computer, infatti, ci permetto di svolgere molto rapidamente...
Windows

Come installare e configurare Cerberus Ftp Server

Grazie alle nuove tecnologie, possiamo usufruire di tutta una serie di programmi e di sistemi che ci consentono di semplificare dei passaggi lavorativi, ma anche delle operazioni quotidiane, in maniera decisamente più veloce e decisa. A questo proposito,...
Windows

Come scaricare senza attese dai siti di condivisione file con Firefox

In questa guida, pratica e veloce, vogliamo dare una mano del tutto concreta, per imparare come poter scaricare senza attese dai siti, di condivisione file con Firefox. Saper utilizzare ed eseguire delle operazione sul nostro pc, è veramente molto importante...
Windows

Come schedulare l'esecuzione di funzioni Access

Un database è formato da un insieme di dati, organizzati mediante software appositi, utili per gestire il tutto con maggiore flessibilità ed in semplicità. Ogni database viene organizzato in relazione alla complessità ed alla tipologia dei dati...
Windows

Come esportare i dati da una tabella Access

Si procederà, nella guida che segue, a spiegare attraverso alcuni semplici passaggi, come fare per trascrivere in automatico tutti i dati contenuti in una tabella Access all'interno di un file con differente formato. Un'operazione di questo tipo vi...
Windows

Come installare e configurare Microsoft Access

Access è un programma appartenete alla suite di Office che permette all'utente che lo utilizza di creare e gestire database e soprattutto applicazioni utili per la vita aziendale e/o privata. Con il passare degli anni questo software ha avuto sempre...
Windows

Come importare dati da Excel ad Access

All'interno di questa breve guida spiegheremo come importare i dati da Excel ad Access. Il pacchetto Microsoft Office, infatti, offre nelle sue svariate funzioni la possibilità di intercambiabilità dei dati da un applicativo ad un altro con estrema...
Windows

Come creare un archivio contatti con Microsoft Access

Volete imparare ad usare Access? Allora iniziate con le basi%2026 Seguendo questa guida riuscirete a creare un semplicissimo archivio. Infatti con Access è possibile creare un archivio dei nostri contatti e con l'Autodialer si possono fare telefonate...
I presenti contributi sono stati redatti dagli autori ivi menzionati a solo scopo informativo tramite l’utilizzo della piattaforma www.o2o.it e possono essere modificati dagli stessi in qualsiasi momento. Il sito web, www.o2o.it e Arnoldo Mondadori Editore S.p.A. (già Banzai Media S.r.l. fusa per incorporazione in Arnoldo Mondadori Editore S.p.A.), non garantiscono la veridicità, correttezza e completezza di tali contributi e, pertanto, non si assumono alcuna responsabilità in merito all’utilizzo delle informazioni ivi riportate. Per maggiori informazioni leggi il “Disclaimer »”.