Prima di tutto bisogna sapere se vuoi farti proprio una copia del file o
vuoi riversare le tabelle.
Tieni presente che copiare il file e' possibile solo se tutti gli altri
utenti hanno l'applicazione chiusa, se anche solo un altro utente ha
scordato di chiuderla e l'ha solo ridotta a icona, un tentativo di copia del
file ti generera' un errore.
Sib
Non ne sono del tutto convinto... dipende dall'aplicativo che copya (non ho
mai provato filecopy su files aperti)
però da windows non ho mai avuto problemi a fare copie di files aperti.
Ciao, Max
e ti rinomina il file con la data e l'ora in cui viene copiato
ciao
Do per scontato che hai il DB suddiviso in Front-end e Back-end, e che a te
interessi salvare il BE contentente le tabelle con i dati.
Public Function SalvaDati()
On Error GoTo ErroreBackup
If MsgBox("Si desidera eseguire una copia di backup dei dati?", vbYesNo +
vbQuestion, "Salva dati") = vbYes Then
'copia su dir mmmaa (mmm=mese aa=anno) il file tuoidati.mdb
If Dir(PathBackup, vbDirectory) = "" Then MkDir PathBackup 'la dir non
esiste, creala
Dim NomeDir As String
NomeDir = PathBackup & Format(Date, "mmmyy") & "\"
If Dir(NomeDir, vbDirectory) = "" Then MkDir NomeDir
SysCmd acSysCmdSetStatus, "Creazione copia di backup mensile (DATA)..."
FileCopy PathBackEnd & "tuoidati.mdb", NomeDir & "tuoidati.mdb"
End If
DoCmd.Quit
Exit Function
ErroreBackup:
MsgBox "ATTENZIONE: non è stato possibile eseguire la copia di backup nella
directory " & PathBackup, vbCritical
DoCmd.Quit
End Function
La copia viene effettuata, ogni mese, su una cartella differente (ti
ritroverai 12 copie diverse l'anno). Questo per risolvere il problema che si
potrebbe presentare quando il BE non funziona, fai la copia di backup, e
sputt**ni pure quella...
P.S. ricordati di definirti opportunamente le variabili PathBackup,
PathBackEnd...
> se poi mi indicate il punto dove inserirlo (...il codice! :-) )
> vi ringrazierei di cuore
su, dai, un po' di impegno... :-))
--
Ciao, AntoGal
*************************************************
Gestione punti vendita (casse e pos NCR)
www.powerretail.it
-------------------------------------------------------------
per scaricare un gioco di DAMA ITALIANA
http://volftp.mondadori.com/italiani/galletta/
*************************************************
il mio db è unico, non è diviso in BE e Fe;
che dici va bene lo stesso il codice?
> > > vorrei abbinare alla chiusura di un programma .mdb un comando per la
> copia
> > > di sicurezza dello stesso file in un'altra directory o altro pc, ma
come
> > > devo fare???
> > > un po di codice non mi esaurirebbe! :-)(
Io ho creato un file.bat di questo tipo che eseguo qualche volta e mi crea
una copia del Be e la rinomina in mioBe.bak
del C:\backup\miobe.old
ren C:\backup\miobe.bak miobe.old
copy C:\mioBE.mdb C:\backup\
ren C:\Backup\mioBE.mdb miobe.bak
in questo modo posso avere una copia di sicurezza recente (miobe.bak) e una
meno recente (miobe.old).
A me sembra che funzioni anche se un utente sta utilizzando il file.
Attenzione che il file.mdb deve avere un nome in formato ms-dos (8caratteri)
oppure usate il ~.
Non è bellissimo ma sembra che funzioni.
Ciao ciao
Michele
puoi anche usare i nomi lunghi, basta metterli tra ""
copy "c:\DB\ ecco il mio back end col nome lungo.mdb *.old"
ciao, max
> il mio db è unico, non è diviso in BE e Fe;
> che dici va bene lo stesso il codice?
Penso di no... stai eseguendo del codice quindi il DB deve essere aperto, e
di conseguenza non verrà copiato.
--
Ciao, AntoGal
embè? chi ti vieta di copiare dei file aperti?
Ciao, Max
La funzione di libreria FileCopy non funziona su file aperti.
Si risolve banalmente utilizzando la seguente API:
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal
lpExistingFileName As String, ByVal lpNewFileName As String, ByVal
bFailIfExists As Long) As Long
Però non so quanto affidabile sia un backup di un file su cui Access ha
delle scritture in corso o in sospeso su file temporanei...
Io farei ancora prima, faccio un shell("xcopy ".....)
> Però non so quanto affidabile sia un backup di un file su cui Access ha
> delle scritture in corso o in sospeso su file temporanei...
in effetti.....
Ciao, Max