Newsgroup: it.comp.appl.access
Titolo: procedura backup con compressione

vorrei creare una procedura automatica di backup che comprima il db e che lo
memorizzi sul floppy.
comprimere perchè il db ha una dimensione di 3 mb mentre zippato stà
tranquillamente su un floppy.
avete qualche idea?
Simone P.

 ha scritto nel messaggio
news:2KwY9.45286$ZE.12...@twister2.libero.it...

Vai sul Sito Comune (link qui sotto) e sulla Sezione General leggi la FAQ di
Federico Luciani intitolata "Zippare files con VBA. (PkZip, Winzip, ...)".
Dovrebba fare al caso tuo.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:n2yY9.45716$ZE.12...@twister2.libero.it...


 perfetto grazie 1000
Sarebbe stato perfetto se avessi scritto correttamente DOPO il quoting!!!
Antonio


ha scritto:

hai ragione, me ne scuso.
sto leggendo giusto ora il netiquette del ng.
di nuovo
Simone

 di nuovo
Perfetto!
Antonio


Prova così:
In un modulo generale crea questa funzione
Function CompattaDati()
Dim dbsDatabase As Database
 
    On Error GoTo CompattaDB_Err
    ' Costante percorso
    Const conPercorso = "C:\GESTART\"
 
    'Compatta il database con nome di file temporaneo.
    DBEngine.CompactDatabase conPercorso & "DATIART.mdb", conPercorso &
"GestTemp.mdb"
 
    'Elimina se esiste, il file di backup precedente.
    If Dir(conPercorso & "DATIART.bak") <> "" Then
        Kill conPercorso & "DATIART.bak"
    End If
 
    'Rinomina il database corrente come backup e rinomina il file temporaneo
    'con il nome del file originale.
    Name conPercorso & "DATIART.mdb" As conPercorso & "DATIART.bak"
    Name conPercorso & "GestTemp.mdb" As conPercorso & "DATIART.mdb"
 
    ' Emette un bip a compattazione avvenuta
        Beep
    MsgBox "Inserire il dischetto nel drive", vbExclamation, "Backup Dati"
 
    ' Esegue il backup del file sul dischetto con nome dati, prevedendo se
necessario alla
    ' richiesta di un nuovo floppy.
    Call Shell("c:\GestArt\pkzip.exe a:dati -ex -& c:\GestArt\DatiArt.mdb", 1)
    'Application.Quit
Exit_CompattaDB:
    Exit Function
 
CompattaDB_Err:
    MsgBox Err.Description
    Resume Exit_CompattaDB
End Function
Su una maschera non associata inserisci un pulsante di comando
Su evento click inserisci =CompattaDati()
Nota: questa funzione esegue la compattazione del file di database, quindi
esegue la zippatura tramite il programma PKzip nel drive A:\.
È importante che non sia attiva nessuna tabella o maschera associata al
momento
di eseguire la compattazione, altrimenti viene impedita l'operazione...
Ciao Gigi
--------------------------------
Inviato via 
http://usenet.libero.it

 > memorizzi sul floppy.
io farei così (DAO):
1) creo un db temporaneo in cui copio solo le tabelle (per gli altri oggetti
non c'è bisogno)
2) avvio winzip e dico di comprimere su floppy:
Dim dbs As Database
If Dir("C:\Windows\Temp\database.mdb") <> "" Then Kill
("C:\Windows\Temp\database.mdb")
Set dbs = DAO.CreateDatabase("C:\windows\temp\database.mdb", dbLangGeneral)
Set dbs = Nothing
DoCmd.TransferDatabase acExport, "Microsoft Access",
"C:\Windows\Temp\Katina.mdb", acTable, "tbl_tabella", "tbl_tabella", False
' Esporta la tabella nel database.mdb in Temp rifallo per tutte le tabelle
da esportare tbl_tabella è la tabella da esportare
idapp = Shell(Me.txtPth & "winzip32.exe" & " -a " & Me.txtDst & " " &
"C:\Windows\Temp\Katina.mdb", vbNormalFocus)
'fai partire winzip: me.txtPth è la directory in cui c'è winzip
(c:\windows\programmi\winzip), me.txtDst è la directory/file in cui vuoi
salvare il file zippato (A:\backup.zip)
'se winzip non è registrato devi cliccare su "I Agree"
Zao