Originariamente inviato da LMondi
Giulio grazie per l'interessamento.
Sì mi sarebbe molto utile, dato che il programma dovrebbe fare il Backup di circa 20 MB (guida escusa che peraltro devo ancora iniziare) tra BD e files.
Quindi se posti il codice sarà ben accetto.
Ciao e Auguri anche a te.
PS. il codice sopra esposto l'ho affinato, ora vorrei inserire una ProgressBar, ma vediamo, se vi interessa lo posto.
Ancora auguri.
Ciao di nuovo LMondi. Grazie per la tua risposta.
Ti posto dunque il codice della routine che io uso per effettuare il backup di un file direttamente da VB utilizzando Winzip:
codice:
Public Sub Backup() ' Funzione di backup del database mediante Winzip
cConferma = MsgBox("Procedura di backup del database con Winzip." & Chr(10) & Chr(10) & _
"Utilizzando questa procedura è possibile procedere al backup" & Chr(10) & _
"del file <XXX.mdb>." & Chr(10) & _
"Confermando l'operazione verrà avviato Winzip che provvederà" & Chr(10) & _
"automaticamente a comprimere il database per il salvataggio." & Chr(10) & _
"Inserire pertanto uno o più dischi floppy nel drive <A>." & Chr(10) & Chr(10) & _
"Una copia sarà creata anche sulla directory dell'applicazione." & Chr(10) & _
"Al termine dell'operazione rimuovere il floppy." & Chr(10) & Chr(10) & _
"Nota:" & Chr(10) & _
"Tutte le procedure aperte verranno chiuse automaticamente." & Chr(10) & Chr(10) & _
"Procedere con il backup?", vbInformation + vbYesNo, "Conferma operazione")
If cConferma = 6 Then ' vbYes = 6 (Operazione confermata)
' Chiusura del database ed eventuali form aperti
Call ChiudiDatabase
Unload frmXXX
On Error GoTo Errore
' Scrittura sulla directory corrente e sul drive "A"
Shell ("c:\programmi\winzip\winzip32.exe -a XXX.zip XXX.mdb"), vbNormalFocus
Shell ("c:\programmi\winzip\winzip32.exe -a a:\XXX.zip XXX.mdb"), vbNormalFocus
Exit Sub
Else
Exit Sub
End If
Errore: ' Gestione di eventuali errori in sede di backup
Call Errori(12) ' Routine di visualizzazione messaggio di errore
Exit Sub
End Sub
Note sull'esempio postato:
Come noterai, per effettuare il backup è necessario chiudere prima il file. Nel mio esempio ho la funzione "ChiudiDatabase" che si occupa di questo. E' necessario perché altrimenti Winzip, pur effettuando regolarmente la compressione del file, ti segnalerà un messaggio di errore.
Sempre nel mio esempio, chiudo pure i vari forms eventualmente aperti.
Winzip a qesto punto inizia la compressione, prima su disco fisso poi su floppy. In caso di necessità di più floppy sarà lo stesso Winzip a chiederti di inserire altri dischetti.
La chiamata alla funzione "Errori(12)" si occupa, nel mio caso, di gestire eventuali errori derivanti da Winzip (esempio: mancata esistenza di questo programma ecc.). Quindi, ed è di tutta evidenza, che una copia di Winzip deve essere installata sul pc...
Per quanto attiene più propriamente il tuo caso, prova a sostituire al nome del file di esempio (XXX.mdb), la tua directory così:
codice:
Shell ("c:\programmi\winzip\winzip32.exe -a XXX.zip TuaDirectory\*.*"), vbNormalFocus
Fammi sapere qualcosa.
DI NUOVO CARI AUGURI A TUTTI!