Newsgroup: it.comp.appl.access
Titolo: Inviare un file con FTP

Come si fa ad inviare un file con FTP da Access.
Mi spiego: sto facendo un sito in Asp.NET con delle pagine che attingono da
vari database, file di testo o pagine excel....
Nel frattempo ho creato qualche database in access che vengono usati da
utenti in locale con  dati che devono andare sul sito.
Questi utenti, quindi, devono esportare i dati in file di testo o tabelle di
excel e fare andare questi file sul server, e vorrei che questo processo
fosse automatico.
Per le esportazioni nessun problema, ma per aprire una connessione ftp col
server remoto e copiare un file in una cartella predefinita ho qualche
problema....
Mi date una mano?
Grazie.

Marco75 wrote:

Codice chiavi in mano? Eccolo:
Option Explicit
Const sSMSTable As String = "sms"           'Nome della tabella 
contenente gli SMS da inviare
Const sFTPServer As String = "localhost"    'FTP Server del gateway SMS
Const sUserName As String = "pippo"         'User name dell'account FTP
Const sPassword As String = "pippo"         'Password dell'account FTP
Const sLocalDir As String = "\outgoing"     'Sotto-directory locale per 
ll posizionamento dei file
                                            'batch e dati
 
Private Declare Function OpenProcess Lib _
   "kernel32" (ByVal dwDesiredAccess As Long, _
   ByVal bInheritHandle As Long, _
   ByVal dwProcessID As Long) As Long
 
Private Declare Function WaitForSingleObject _
   Lib "kernel32" (ByVal hHandle As Long, _
   ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib _
   "kernel32" (ByVal hObject As Long) As Long
Public Sub SendSMS(bSyncronous As Boolean, bBell As Boolean)
    Dim sLocalPath
    sLocalPath = Application.CurrentProject.Path & sLocalDir
 
    'Verifica dell'esistenza della sotto-direcotry locale
    On Error Resume Next
    If Dir(sLocalPath) = "" Then
        'Nel caso non esista la si crea
        MkDir (sLocalPath)
    End If
    On Error GoTo 0
 
    'Esportazione degli SMS da inviare
    DoCmd.TransferText acExportFixed, "SMS", sSMSTable, sLocalPath & 
"\sms.txt"
 
    'Creazione del file di comando del gateway SMS (per il momento 
vuoto)
    Open sLocalPath & "\sms.txt.do_send" For Output As #1
    Close #1
 
    'Creazione del file script per l'upload ftp degli SMS
    Open sLocalPath & "\ftp.txt" For Output As #1
     Print #1, "open " & sFTPServer
     Print #1, sUserName
     Print #1, sPassword
 
     'Opzionale se si desidera fa emettere un beep ad ogni upload
     If bBell Then
      Print #1, "bell"
     End If
 
     Print #1, "ascii"
     Print #1, "cd incoming"
     Print #1, "put " & Chr(34) & sLocalPath & "\sms.txt" & Chr(34)
     Print #1, "put " & Chr(34) & sLocalPath & "\sms.txt.do_send" & 
Chr(34)
     Print #1, "close"
     Print #1, "bye"
    Close #1
 
 
    'Esecuzione dello script per l'upload ftp degli SMS
    Dim hPrg As Long
    Dim hProc As Long
    Dim iRet As Long
 
    If bSyncronous Then     'modalita sincrona
        hPrg = Shell("ftp -i -s:" & Chr(34) & sLocalPath & "\ftp.txt" & 
Chr(34), 0)
        hProc = OpenProcess(&H1F0FFF, False, hPrg)
        If hProc <> Null Then
           iRet = WaitForSingleObject(hProc, -1&)
           CloseHandle hProc
        End If
    Else                    'modalita sincrona
        Call Shell("ftp -i -s:" & Chr(34) & sLocalPath & "\ftp.txt" & 
Chr(34), 0)
    End If
End Sub

Troppo mitico!!
Grazie 10000000!!!
Ciao!

Funziona tutto alla perfezione... grazie ancora.
Solo una domanda: come faccio a spostarmi in una directory sul server?
Così mi copia il file nella directory che ho definito come principale nella
connessione sul server.
Potrei creare un altro accesso ftp sul server che punti alla directory che
pare a me, ma se riuscissi a spostarmi tra le directory via codice sarebbe
più agevole....
Ciao!

 ha scritto nel messaggio
news:E1cla.24421$DT4.7...@twister1.libero.it...



Caro Marco,
scusami se ti sottolineo questa tua distrazione, ma sei da paradigma.
Ti hanno risolto il problema? Perfetto, grazie a chi l'ha fatto. Grazie da
parte tua e da parte di chi come me si fa il suo bell'archivio di tutte le
soluzioni.
Ora tu hai riscontrato un ulteriore problema e l'hai risolto da solo. Il
minimo è postare la soluzione.
Altrimenti da paradigma diventi para...
cioa MAssimiliano
--------------------------------
Inviato via 
http://usenet.libero.it

 Altrimenti da paradigma diventi para...
Hai ragione.... ma la mia č stata pura distrazione!
Nel listato viene creato il file \ftp.txt, che contiene tutti i comandi da
far eseguire attraverso la shell.
Se noti lě c'č un comando "cd incoming" che ti dovrebbe far spostare nella
directory incoming del server.
Ma sul mio server non c'č nessuna directory incoming.... nel mio caso č
bastato scrivere "cd data".
Ciao!