Newsgroup: it.comp.lang.visual-basic
Titolo: Backuppare un DB Access

Ho la necessità come per ogni DB di creare una copia di backup del DB nel 
caso il pc, visto che lavorebbe su un solo pc, impazzisse o si fulminasse. 
Credo quindi che sia inutile salvare 2 volte il DB sullo stesso pc.
Non avendo un server serio collegato, pensavo di salvare il file su uno 
spazio web del dominio del cliente.
Quello che pensavo era:
1) Quando il cliente/utente clicca sulla X della form per chiuderla, aprire 
una finestrella che chiede se si è connessi ad internet.Nel caso si 
rispondesse si prima di unloadare la form eseguire le seguenti operazioni:
a) comprimere il DB in un file .zip o .rar per diminuire le dimensioni, 
magari proteggendo il file con una password.
b)Collegarsi via FTP con il sito del cliente
c)Trasferire il DB compresso sul sito del cliente
d)Chiudere la comunicazione del trasferimento
e)Uscire effettivamente dalla form
Voi cosa ne pensate? Avete qualche idea migliora.
Come potrei eseguire quanto descritto sopra?
Non so veramente nè come comprimere il file con password e nemmeno come 
eseguire il collegamento ftp.
Trovero' mai qualche cosa di già fatto? 

"Thommino" <toms...@REMOVEfastwebnet.it> ha scritto

se il db e' grossetto, e' quantomeno lunga. cambiando completamente 
impostazione, se ha uno spazio web avra' pure una porta usb. mi sembra 
decisamente piu' semplice fare una copia su una penna usb (o su un secondo 
disco fisso). lacie fa un disco da 8gb piatto come una carta di credito a 
110e circa. e' pure discretamente veloce. ti puoi fare una routine che anche 
mentre ci lavorano lo copia a intervalli regolari, con nomi tipo ciccioA.mdb 
.. ciccioZ.mdb. quando arrivi a Z ricominci con A e sovrascrivi le copie 
vecchie. loro manco se ne accorgono e si ritrovano varie copie.
non usare filecopy, usa shfileoperation, che funziona anche a mdb aperto.
hth, ciao, a.

 non usare filecopy, usa shfileoperation, che funziona anche a mdb aperto.
Sinceramente non è un db che avrà continui aggiornamenti, diciamo uno a 
settimana con l'aggiunta modifica di una 20ina di record.
Sinceramente volevo consegnare al "cliente" un prodotto che rendesse la 
necessità di altri acquisti. E visto che la segretaria avrà si e no la terza 
media non posso chiederle di manualmente copiare tutte le volte il DB su una 
penna USB. Cercavo qualche cosa di più semplice, per loro almeno. 

 quindi non è nemmeno così pesante.
Ho trovato questo codice per la compattazione e decompattazione di un db 
Access, purtroppo mi dice che la variabile alla riga (Screen.MousePointer = 
HourGlass) non è definita.
--------CODE----------
Private Sub DBCompress_Click()
    Dim destiName As String
    Dim backupName As String
    Dim gstDBName As String
    destiName = App.Path & "\Circolo_Liberta_Teodolinda_DB_TEMP.mdb"
    backupName = App.Path & "\Circolo_Liberta_Teodolinda_DB_TEMP.bak"
    gstDBName = App.Path & "\Circolo_Liberta_Teodolinda_DB.mdb"
    On Error GoTo CompactFail
    Screen.MousePointer = HourGlass
    DBEngine.CompactDatabase gstDBName, destiName
    If Len(Dir(backupName)) <> 0 Then Kill backupName
       Name gstDBName As backupName
       Name destiName As gstDBName
       ' give finish message
       Screen.MousePointer = Normal
       MsgBox "Compattazione conclusa", vbOKOnly + vbInformation, 
"Application Name"
Exit Sub
CompactFail:
    MsgBox "Compact Fail" & Chr$(13) & "Contact User Area. ", vbOKOnly + 
vbCritical, "Application Name"
    Screen.MousePointer = Normal
Exit Sub
End Sub
Private Sub DBRebuild_Click()
    On Error GoTo RebuildFail
    Screen.MousePointer = HourGlass
    DBEngine.RepairDatabase gstDBName
    Screen.MousePointer = Normal
    MsgBox "Repair Finish", vbOKOnly + vbInformation, "Application Name"
Exit Sub
RebuildFail:
    MsgBox "Repair Fail" & Chr$(13) & "Contact User Area ", vbOKOnly + 
vbCritical, "Application Name"
    Screen.MousePointer = Normal
Exit Sub
End Sub

 HourGlass) non č definita.
...
Vado a  memoria, ma se non sbaglio la costante che indica al mouse di
diventare clessidra, e' VBHourGlass, quindi con l'aggiunta del suffisso
VB; se cosi' fosse, spiegherebbe anche il motivo per cui ti viene
restituito l'errore di variabile non definita... in effetti da nessuna
parte e' stata dichiarata una variabile (o costante) HourGlass, mentre
esiste gia' nel "copro" di VB la costante VBHourGlass, che se non sbaglio
e' uguale a 11.
Spero di non aver scritto troppe cavolate :-)
Ciao... Maurizio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Ciao... Maurizio
Avevo già provato, ma dava un altro errore da un'altra parte, così ho 
cambiato completamente codice.
Nel senso che adesso:
Gli faccio creare il DB temporaneo, poi lo comprimo con Winrar e una volta 
compresso lo butto via FTP sul mio sito web. Non sarà elegante, ma fa quello 
che deve fare, ovvero crearmi nel caso di necessità grave una copia di 
backup nel mio spazio FTP.