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
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...
Controlla i rifermenti, e indica in quale riga ti presenta l'errore...
Ciao.
--
Sergio MAZZA
Anche per te la raccomandazione di leggere le regole di questo NG; le trovi
su www.sitocomune.com...
Ciao.
--
Sergio MAZZA
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
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
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
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
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.
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
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.
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" <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
"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