Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

copia di sicurezza file mdb alla chiusura del file mdb :-)

2 views
Skip to first unread message

CED

unread,
Jul 10, 2001, 4:41:59 PM7/10/01
to
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! :-)(
se poi mi indicate il punto dove inserirlo (...il codice! :-) )
vi ringrazierei di cuore

Sib dal portatile

unread,
Jul 11, 2001, 2:16:15 AM7/11/01
to
"CED" <onof...@tin.it> ha scritto nel messaggio
news:rMJ27.42901$cd.2...@news1.tin.it...

> 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???

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


MegaMax

unread,
Jul 11, 2001, 2:46:43 AM7/11/01
to

"Sib dal portatile" <sibN...@iol.it> ha scritto nel messaggio
news:9igr19$61$1...@serv1.iunet.it...

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


ced

unread,
Jul 11, 2001, 7:33:05 AM7/11/01
to

MegaMax <a...@a.com> wrote in message nDS27.49330$cd.2...@news1.tin.it...
> perņ da windows non ho mai avuto problemi a fare copie di files aperti.
>
> Ciao, Max
>
voglio fare la copia di tutto il file in un'inica operazione
e poi se dovesse darmi errore perchč qualcuno l'ha aperto, lo faccio
chiudere e ci riprovo.
aiutatemi!!!
>


alexb

unread,
Jul 11, 2001, 8:43:55 AM7/11/01
to

ced <c...@tin.it> wrote in message RPW27.50047$cd.3...@news1.tin.it...

>
> MegaMax <a...@a.com> wrote in message nDS27.49330$cd.2...@news1.tin.it...
> >
> > "Sib dal portatile" <sibN...@iol.it> ha scritto nel messaggio
> > news:9igr19$61$1...@serv1.iunet.it...
> > > "CED" <onof...@tin.it> ha scritto nel messaggio
> > > news:rMJ27.42901$cd.2...@news1.tin.it...
> > > > 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???
> > >
> > > 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.
> >
> > 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
> >
> voglio fare la copia di tutto il file in un'inica operazione
> e poi se dovesse darmi errore perchè qualcuno l'ha aperto, lo faccio

> chiudere e ci riprovo.
> aiutatemi!!!
> >
>
>
allora potresti utilizzare la funzione filecopy. Es.:
FileCopy "c:\documenti\miodb.mdb", "C:\copie\_" & Format(Now, "ddmmyy-hhmm")
& ".mdb"

e ti rinomina il file con la data e l'ora in cui viene copiato

ciao

AntoGal

unread,
Jul 11, 2001, 9:24:48 AM7/11/01
to
"CED" <onof...@tin.it> ha scritto...

> 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! :-)(

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/
*************************************************


CED

unread,
Jul 11, 2001, 4:40:59 PM7/11/01
to

"AntoGal" <ant...@sitocomune.com> ha scritto nel messaggio
news:9ihjpr$152$1...@pegasus.tiscalinet.it...

il mio db è unico, non è diviso in BE e Fe;
che dici va bene lo stesso il codice?

Michele

unread,
Jul 12, 2001, 4:59:47 AM7/12/01
to

> > > 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


MegaMax

unread,
Jul 12, 2001, 6:11:46 AM7/12/01
to
> 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 ~.

puoi anche usare i nomi lunghi, basta metterli tra ""
copy "c:\DB\ ecco il mio back end col nome lungo.mdb *.old"

ciao, max


AntoGal

unread,
Jul 12, 2001, 1:34:11 PM7/12/01
to
"CED" <onof...@tin.it> ha scritto...

> 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

MegaMax

unread,
Jul 13, 2001, 2:27:35 AM7/13/01
to

"AntoGal" <ant...@sitocomune.com> ha scritto nel messaggio
news:9ikmov$2r6$1...@lacerta.tiscalinet.it...

> "CED" <onof...@tin.it> ha scritto...
>
> > 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.

embè? chi ti vieta di copiare dei file aperti?

Ciao, Max


AntoGal

unread,
Jul 13, 2001, 8:59:00 AM7/13/01
to
"MegaMax" <a...@a.com> ha scritto...

> > Penso di no... stai eseguendo del codice quindi il DB deve essere
aperto,
> e
> > di conseguenza non verrà copiato.
>
> 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...

MegaMax

unread,
Jul 16, 2001, 3:45:40 AM7/16/01
to

"AntoGal" <ant...@sitocomune.com> ha scritto nel messaggio
news:9inar9$qf6$1...@pegasus.tiscalinet.it...

> "MegaMax" <a...@a.com> ha scritto...
> > > Penso di no... stai eseguendo del codice quindi il DB deve essere
> aperto,
> > e
> > > di conseguenza non verrà copiato.
> >
> > 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

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


0 new messages