Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Protocollo FTP in VBA

894 views
Skip to first unread message

Lorenzo

unread,
Aug 18, 2002, 5:06:41 PM8/18/02
to
Ciao a tutti,
dovrei copiare dei file .CSV, creati con un modulo Access, su un server FTP,
utilizzando lo stesso modulo ... quindi in automatico, senza dover
utilizzare altri sw.
Ho consultato in lungo e in largo l'help ma non ho trovato nulla in
proposito.
Qualcuno saprebbe dirmi come potrei fare? Magari istruendo il modulo ad
attivare anche la connessione telefonica?

Grazie fin d'ora
Lorenzo


Stefano Gemignani

unread,
Aug 19, 2002, 1:29:15 AM8/19/02
to
potresti usare InetTransferLib che e' distribuita come Addin di Access97, io
pero' non riesco a referenziarla in Access2000.
C'e' qualcuno che ne sa di piu'

Sergio MAZZA

unread,
Aug 19, 2002, 9:26:46 AM8/19/02
to
"Lorenzo" <lorenzo...@adriacom.it> ha scritto nel messaggio
news:ajp291$qus$1...@monty.lombardiacom.it...

Ho provato da poco il controllo activex INet distribuito con il developer
(acc'97). Se fai una ricerca in MS con la voce INET trovi molti esempi;
trovi anche il bug relativo allo stesso controllo ma distribuito con VB.
Quello del developer funziona, questo è un piccolo esempio del codice che ho
utilizzato:
'------------
Dim strSite As String
Dim strFile As String
strSite = Me!txtFTPSite
strFile = Me!txtFileName
objFTP.Protocol = icFTP
objFTP.UserName = "administrator"
objFTP.Password = "PippoPippo"
objFTP.URL = strSite
Do While objFTP.StillExecuting
DoEvents
Loop
objFTP.Execute strSite, "PUT C:\temp\" & strFile & " " & strFile
Do While objFTP.StillExecuting
DoEvents
Loop
objFTP.Cancel
'------------

Ciao.

--
Sergio MAZZA


Lorenzo

unread,
Aug 19, 2002, 4:43:43 PM8/19/02
to
Un sentito ringraziamento a tutti coloro che mi hanno dato delle dritte ed
in particolare a Sergio per i preziosi suggerimenti.

Credo di aver risolto il problema referenziando il file MSINET.OCX
(Microsoft Internet Transfer Control) che ho trovato già presente nella
cartella System32 di WinXP.
Ho scoperto con piacere che il controllo ActiveX in questione supporta
diversi protocolli (FTP, Gopher, HTTP, HTTPS).
Non ho trovato invece un help in linea sull'argomento ... ma alcune
informazioni di base sono disponibili a questo indirizzo
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/htm
l/vbconusinginternettransfercontrol.asp

Grazie ancora Sergio ... a buon rendere
Lorenzo


"Sergio MAZZA" <sergi...@tiscali.it> ha scritto nel messaggio
news:ajqre4$lu7$1...@lacerta.tiscalinet.it...

Galvy

unread,
Aug 20, 2002, 11:02:03 AM8/20/02
to

"Sergio MAZZA" <sergi...@tiscali.it> ha scritto nel messaggio
news:ajqre4$lu7$1...@lacerta.tiscalinet.it...

> "Lorenzo" <lorenzo...@adriacom.it> ha scritto nel messaggio
> news:ajp291$qus$1...@monty.lombardiacom.it...
> > Ciao a tutti,
> > dovrei copiare dei file .CSV, creati con un modulo Access, su un server
> FTP,
> > utilizzando lo stesso modulo ... quindi in automatico, senza dover
> > utilizzare altri sw.
> > Ho consultato in lungo e in largo l'help ma non ho trovato nulla in
> > proposito.
> > Qualcuno saprebbe dirmi come potrei fare? Magari istruendo il modulo ad
> > attivare anche la connessione telefonica?
> >
> > Grazie fin d'ora
> > Lorenzo
> >
>
> Ho provato da poco il controllo activex INet distribuito con il developer
> (acc'97). Se fai una ricerca in MS con la voce INET trovi molti esempi;
> trovi anche il bug relativo allo stesso controllo ma distribuito con VB.
> Quello del developer funziona, questo č un piccolo esempio del codice che

ho
> utilizzato:
> '------------
> Dim strSite As String
> Dim strFile As String
> strSite = Me!txtFTPSite
> strFile = Me!txtFileName
> objFTP.Protocol = icFTP
> objFTP.UserName = "administrator"
> objFTP.Password = "PippoPippo"
> objFTP.URL = strSite
> Do While objFTP.StillExecuting
> DoEvents
> Loop
> objFTP.Execute strSite, "PUT C:\temp\" & strFile & " " & strFile
> Do While objFTP.StillExecuting
> DoEvents
> Loop
> objFTP.Cancel
> '------------
>
> Ciao.
>
> --
> Sergio MAZZA
>
>
Ho provato ad usare il tuo codice ma mi restituisce un errore....
"Necesssario oggetto"
Saluti Galvy


Sergio MAZZA

unread,
Aug 21, 2002, 8:56:04 AM8/21/02
to
"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:LRs89.79797$n04.2...@twister2.libero.it...

>
> Ho provato ad usare il tuo codice ma mi restituisce un errore....
> "Necesssario oggetto"
> Saluti Galvy
>

Controlla i rifermenti, e indica in quale riga ti presenta l'errore...

Ciao.


--
Sergio MAZZA

Sergio MAZZA

unread,
Aug 21, 2002, 8:57:16 AM8/21/02
to
"Lorenzo" <lorenzo...@adriacom.it> ha scritto nel messaggio
news:ajrla0$1tp$1...@monty.lombardiacom.it...

> Un sentito ringraziamento a tutti coloro che mi hanno dato delle dritte ed
> in particolare a Sergio per i preziosi suggerimenti.
>
> Credo di aver risolto il problema referenziando il file MSINET.OCX
> (Microsoft Internet Transfer Control) che ho trovato già presente nella
> cartella System32 di WinXP.
> Ho scoperto con piacere che il controllo ActiveX in questione supporta
> diversi protocolli (FTP, Gopher, HTTP, HTTPS).
> Non ho trovato invece un help in linea sull'argomento ... ma alcune
> informazioni di base sono disponibili a questo indirizzo
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/htm
> l/vbconusinginternettransfercontrol.asp
>
> Grazie ancora Sergio ... a buon rendere
> Lorenzo
>

Anche per te la raccomandazione di leggere le regole di questo NG; le trovi
su www.sitocomune.com...

Ciao.


--
Sergio MAZZA

Galvy

unread,
Aug 21, 2002, 9:28:08 AM8/21/02
to

> Controlla i rifermenti, e indica in quale riga ti presenta l'errore...
>
> Ciao.
>
>
> --
> Sergio MAZZA
>
>
>
E' appunto ciň che ho fatto(ho letto il codice errore e mi sono informato)
ma dato che non sono pratico di ftp da vba non ci ho capito nulla.....non
avresti qualche dritta??
Galvy


Sergio MAZZA

unread,
Aug 21, 2002, 9:45:43 AM8/21/02
to
"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:IzM89.82851$n04.2...@twister2.libero.it...
>
> E' appunto ciò che ho fatto(ho letto il codice errore e mi sono informato)

> ma dato che non sono pratico di ftp da vba non ci ho capito nulla.....non
> avresti qualche dritta??
> Galvy
>

Non centra nulla la "praticità di ftp da VBA"; vuoi sapere che ho fatto io?
Mi hanno chiesto di fare questo programmino, ho cercato dei controlli
activex semplici e disponibili in office; l'ho trovato nel developer ('97) e
ho cercato informazioni in MS e siti VB/VBA.
Ho studiato quelle tre righe di codice per utilizzarlo; l'ho provato e
zac... Tutto qui.
Ora se non mi descrivi cosa e come hai realizzato (con la riga di errore e
il messaggio che ti presenta) io come faccio a darti una dritta?
Posso andare a tastoni: hai inserito il controllo activex sulla maschera e
chiamato "objFTP"?
Considera che il codice di esempio lo trovi in MS cercando proprio la voce
INET e precisamente: "ACC97: Example Using the Internet Transfer ActiveX
Control"...

Ciao.

--
Sergio MAZZA


Galvy

unread,
Aug 21, 2002, 9:51:51 AM8/21/02
to

"Sergio MAZZA" <sergi...@tiscali.it> ha scritto nel messaggio
news:ak02ch$fr5$1...@lacerta.tiscalinet.it...
Anzi scusa + semplicemente objftp non devo dichiararlo uguale a qualcosa????
Dim objftp as ??????????????? non so...
Saluti Galvy


Sergio MAZZA

unread,
Aug 21, 2002, 10:14:23 AM8/21/02
to
"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:XVM89.85375$lu5.2...@twister1.libero.it...

>
> Anzi scusa + semplicemente objftp non devo dichiararlo uguale a
qualcosa????
> Dim objftp as ??????????????? non so...
> Saluti Galvy
>

Ah ecco! Ciavevo indovinato...
Nell'esempio di MS inseriva la dichiarazione nel caricamento della form
(bleah!); visto che te l'ho riportato così com'è senza indicartelo, ti
chiedo scusa io della mancanza...
Ricapitoliamo; inserisci il controllo activex inet sulla form, chiamalo
InetTran; due caselle di testo chiamate txtFTPSite e txtFileName; un bottone
con nome cmdGetFile.
Poi nell'evento "su clic" del bottone scrivi:
'--------
Dim objFTP As Inet
Set objFTP = Me!InetTran.Object

Dim strSite As String
Dim strFile As String
strSite = Me!txtFTPSite
strFile = Me!txtFileName
objFTP.Protocol = icFTP
objFTP.UserName = "administrator"

objFTP.Password = "segreta"


objFTP.URL = strSite
Do While objFTP.StillExecuting
DoEvents
Loop
objFTP.Execute strSite, "PUT C:\temp\" & strFile & " " & strFile
Do While objFTP.StillExecuting
DoEvents
Loop
objFTP.Cancel
'-----------

Ciao.

--
Sergio MAZZA


Galvy

unread,
Aug 21, 2002, 10:41:37 AM8/21/02
to
Finalemente domo riceerche e ricerche ho scoperto che quel controllo activex
è in uso con office developer..... io possiedo office 2000 semplice.....
Sorry but Microsoft Internet Transfert..... non è concesso con office
2000...
Avresti mica altri suggerimenti lasciando perdere quelli che mi hai appena
dato?
Saluti Galvy


Sergio MAZZA

unread,
Aug 22, 2002, 4:04:13 PM8/22/02
to
"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:BEN89.85539$lu5.2...@twister1.libero.it...

> Finalemente domo riceerche e ricerche ho scoperto che quel controllo
activex
> è in uso con office developer..... io possiedo office 2000 semplice.....
> Sorry but Microsoft Internet Transfert..... non è concesso con office
> 2000...

Quello che avevo scritto io...

> Avresti mica altri suggerimenti lasciando perdere quelli che mi hai appena
> dato?

Perché ora che succede? Hai inserito nella form il controllo inet?

> Saluti Galvy

Ciao.

--
Sergio MAZZA

Galvy

unread,
Aug 23, 2002, 4:48:36 AM8/23/02
to
mi è stato detto che il controllo internet transfert protocol.......6 è
msinet.ocx l'ho scaricato è installato sul mio pc ho provato ad aggiungere
nella form il controllo activx ma mi da errore(autorizzazione non concessa)
mi sono spostato su un altro pc con acces 2000 (io uso XP) e ci ho riprovato
con successo.
Ma quando arriva il momento del execute mi restituisce errore "metodo
execute del iinet non riuscito"...???
Hai qualche idea oppure devo comprarmi office developer?
Saluti Galvy


Sergio MAZZA

unread,
Sep 3, 2002, 5:51:29 AM9/3/02
to
"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:EFm99.89525$n04.2...@twister2.libero.it...

L'hai scaricato? E da dove? Ho già detto che alcune versioni del controllo
inet sono "fallate", MS l'ha riconosciuto; se esegui una ricerca nel KB
troverai la descrizione del bug. Ma viene indicato che la versione fallata è
quella inclusa in VB 5 (Internet Transfer Control 5.0); io ho installato VB6
+ sp relativi e non è cambiato nulla (anche riformattando il pc). Quando ho
visto che il controllo era disponibile nel developer di access97, l'ho
provato e funziona...
Il consiglio che ti posso dare è controllare che versione hai installato ed
eventualmente sostituirla con quella presente nel developer di access'97...

Ciao.

--
Sergio MAZZA


Galvy

unread,
Sep 3, 2002, 10:08:38 AM9/3/02
to
> L'hai scaricato? E da dove? Ho già detto che alcune versioni del controllo
> inet sono "fallate", MS l'ha riconosciuto; se esegui una ricerca nel KB
> troverai la descrizione del bug. Ma viene indicato che la versione fallata
è
> quella inclusa in VB 5 (Internet Transfer Control 5.0); io ho installato
VB6
> + sp relativi e non è cambiato nulla (anche riformattando il pc). Quando
ho
> visto che il controllo era disponibile nel developer di access97, l'ho
> provato e funziona...
> Il consiglio che ti posso dare è controllare che versione hai installato
ed
> eventualmente sostituirla con quella presente nel developer di
access'97...
>
> Ciao.
>
> --
> Sergio MAZZA
>
>
Meglio ancora mi sono comprato office XP developer ma nulla sono disperato
ho aggiounto il controllo activex ecc ecc scritto il codice ma nulla "Metodo
Execute non supportato........" sono disperato.
Per prova hai qualche altro esempio (codice) di FTP da VBA ????? potrei
ringraziarti da oggi sino al nuovo millennio....
Saluti Galvy


Giorgio prx

unread,
Sep 3, 2002, 3:14:41 PM9/3/02
to

"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:Gn3d9.143532$lu5.3...@twister1.libero.it...


Ho provato per curiosità e a me funziona forse il problema sussiste nella
composizione del comando.
Ti passo il codice che ho utilizzato con il mio spazio web su Tiscali
Utilizzo Win98 e OfficeXp developer edition


Crea una maschera nuova, aggiungi il controlloMicrosoft Internet Transfer
control, aggiungi un Pulsante e nell'evento click copia il codice qui sotto.

Private Sub P_Trasmetti_Click()

Dim Comando As String 'Comando
Dim PathSrc As String ' Path sorgente
Dim PathDst As String 'Path destinazione
Dim File As String 'Nome File da trasferire

Inet1.Protocol = icFTP
Inet1.URL = "ftp://nomeutente:pass...@ftp.tiscali.it"
Inet1.RemoteHost = "ftp.tiscali.it"
Inet1.UserName = "nomeutente"
Inet1.Password = "password"

PathSrc = "C:/Documenti/"
PathDst = ""
File = "1.txt"
Comando = "PUT """ & PathSrc & File & """ """ & PathDst & File & """"
Me.Inet1.Execute "", Comando


End Sub

Ciao Giorgio.

Sergio MAZZA

unread,
Sep 4, 2002, 5:26:27 AM9/4/02
to
"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:Gn3d9.143532$lu5.3...@twister1.libero.it...

> Meglio ancora mi sono comprato office XP developer ma nulla sono disperato
> ho aggiounto il controllo activex ecc ecc scritto il codice ma nulla
"Metodo
> Execute non supportato........" sono disperato.
> Per prova hai qualche altro esempio (codice) di FTP da VBA ????? potrei
> ringraziarti da oggi sino al nuovo millennio....
> Saluti Galvy
>

Altri esempi che utilizzano il controlli Inet non ne ho, quello è il più
semplice.
Prova con il codice inviato da Giorgio prx; ma sei sicuro di avere i
permessi per accedere al sito ftp?

Ciao.

--
Sergio MAZZA


Galvy

unread,
Sep 4, 2002, 8:12:04 AM9/4/02
to
> Ho provato per curiosità e a me funziona forse il problema sussiste nella
> composizione del comando.
> Ti passo il codice che ho utilizzato con il mio spazio web su Tiscali
> Utilizzo Win98 e OfficeXp developer edition
>
>
> Crea una maschera nuova, aggiungi il controlloMicrosoft Internet Transfer
> control, aggiungi un Pulsante e nell'evento click copia il codice qui
sotto.
>
> Private Sub P_Trasmetti_Click()
>
> Dim Comando As String 'Comando
> Dim PathSrc As String ' Path sorgente
> Dim PathDst As String 'Path destinazione
> Dim File As String 'Nome File da trasferire
>
> Inet1.Protocol = icFTP
> Inet1.URL = "ftp://nomeutente:pass...@ftp.tiscali.it"
> Inet1.RemoteHost = "ftp.tiscali.it"
> Inet1.UserName = "nomeutente"
> Inet1.Password = "password"
>
> PathSrc = "C:/Documenti/"
> PathDst = ""
> File = "1.txt"
> Comando = "PUT """ & PathSrc & File & """ """ & PathDst & File & """"
> Me.Inet1.Execute "", Comando
>
>
> End Sub
>
>
>
> Ciao Giorgio.
>
>
>
Il controllo microsoft internet........... nella from si chima immagino
inet1...
Giusto?
Saluti Galvy


Giorgio prx

unread,
Sep 4, 2002, 11:34:05 AM9/4/02
to

"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:oMmd9.147859$lu5.3...@twister1.libero.it...

Esatto e se vuoi inviare una sequenza di comandi intramezzali con questo
loop

'Attesa fine del comando
Do
If Inet1.StillExecuting = False Then Exit Do
DoEvents
Loop

La versione di Msinet.ocx da me utilizzata è la 6.00.8877 del May 26, 2000.

Ciao Giorgio.


Galvy

unread,
Sep 4, 2002, 1:12:36 PM9/4/02
to
> Esatto e se vuoi inviare una sequenza di comandi intramezzali con questo
> loop
>
> 'Attesa fine del comando
> Do
> If Inet1.StillExecuting = False Then Exit Do
> DoEvents
> Loop
>
> La versione di Msinet.ocx da me utilizzata č la 6.00.8877 del May 26,
2000.
>
>
>
> Ciao Giorgio.
>
>
>
>
Ok! tutto bene ma ora che sono riuscito grazie a te a fare ftp vorrei
chiederti....
(sempre + difficile) durante upload o download di un file avere una barra di
progresso in base ai byte inviati o ricevuti.
Hai un idea?
Saluti e Grazie Galvy


Galvy

unread,
Sep 4, 2002, 1:13:16 PM9/4/02
to
> Altri esempi che utilizzano il controlli Inet non ne ho, quello è il più
> semplice.
> Prova con il codice inviato da Giorgio prx; ma sei sicuro di avere i
> permessi per accedere al sito ftp?
>
> Ciao.
>
> --
> Sergio MAZZA
>
>
Esempi di Giorgio OK!
Grazie a tutti!


Giorgio prx

unread,
Sep 4, 2002, 1:45:07 PM9/4/02
to

"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:8ard9.235$%z1....@twister1.libero.it...

> Ok! tutto bene ma ora che sono riuscito grazie a te a fare ftp vorrei
> chiederti....
> (sempre + difficile) durante upload o download di un file avere una barra
di
> progresso in base ai byte inviati o ricevuti.
> Hai un idea?
> Saluti e Grazie Galvy
>
>

Con Il Controllo Msinet di più non può in quanto ha solo l'evento
StateChanged.
Mi sono ritrovato nel computer (prelevando un client ftp freewhare) il
controllo EvansFtp completo di help e ho visto che ha l'evento -
DataTransfer(FileName As String, BytesBlockSize As Long,
CurrentFileBytesTransfered As Long, CurrentFileBytesSize As Long,
CurrentFileBytesRemaining As Long, OverallBytesTransfered As Long,
OverallBytesSize As Long, Key) e come vedi c'e l'occorrente per creare una
barra di progresso

informazioni più dettagliate le trovi su Evans FTP
http://www.evans-programming.com/evansftp.asp

Ciao Giorgio.


Galvy

unread,
Sep 4, 2002, 2:40:50 PM9/4/02
to
> Con Il Controllo Msinet di più non può in quanto ha solo l'evento
> StateChanged.
> Mi sono ritrovato nel computer (prelevando un client ftp freewhare) il
> controllo EvansFtp completo di help e ho visto che ha l'evento -
> DataTransfer(FileName As String, BytesBlockSize As Long,
> CurrentFileBytesTransfered As Long, CurrentFileBytesSize As Long,
> CurrentFileBytesRemaining As Long, OverallBytesTransfered As Long,
> OverallBytesSize As Long, Key) e come vedi c'e l'occorrente per creare una
> barra di progresso
>
> informazioni più dettagliate le trovi su Evans FTP
> http://www.evans-programming.com/evansftp.asp
>
> Ciao Giorgio.
>
>
>
>
Ora vedo quello che riesco a combinare :)
Ti so dire mille grazie per ora!
Saluti Galvy


Giorgio prx

unread,
Sep 5, 2002, 8:06:35 PM9/5/02
to

"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:8ard9.235$%z1....@twister1.libero.it...
> Ok! tutto bene ma ora che sono riuscito grazie a te a fare ftp vorrei
> chiederti....
> (sempre + difficile) durante upload o download di un file avere una barra
di
> progresso in base ai byte inviati o ricevuti.
> Hai un idea?
> Saluti e Grazie Galvy
>
>

How To: Come aggiungere una StatusBar all'controllo MsInet

http://support.microsoft.com/default.aspx?scid=kb;it;I15701

Ciao Giorgio

 

Giorgio prx

unread,
Sep 5, 2002, 8:08:26 PM9/5/02
to

"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:Sssd9.732$AW6....@twister2.libero.it...

"Galvy" <ga...@libero.it> ha scritto nel messaggio


news:8ard9.235$%z1....@twister1.libero.it...
> Ok! tutto bene ma ora che sono riuscito grazie a te a fare ftp vorrei
> chiederti....
> (sempre + difficile) durante upload o download di un file avere una barra
di
> progresso in base ai byte inviati o ricevuti.
> Hai un idea?
> Saluti e Grazie Galvy
>
>

Giorgio prx

unread,
Sep 5, 2002, 8:18:49 PM9/5/02
to
"Galvy" <ga...@libero.it> ha scritto nel messaggio
news:8ard9.235$%z1....@twister1.libero.it...
> Ok! tutto bene ma ora che sono riuscito grazie a te a fare ftp vorrei
> chiederti....
> (sempre + difficile) durante upload o download di un file avere una barra
di
> progresso in base ai byte inviati o ricevuti.
> Hai un idea?
> Saluti e Grazie Galvy
>
>


How To: Come aggiungere una StatusBar al controllo MsInet

0 new messages