Backup progressivi.

Anonimo
2017-08-26T20:37:37+00:00

Ciao,

facendo una ricerca in rete sono riuscito ad adattare il seguente codice per creare il backup del database.

In un modulo:

Declare PtrSafe Function apiCopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Sub CopyFile(SourceFile As String, DestFile As String)

       '---------------------------------------------------------------

       ' PURPOSE: Copy a file in use on disk from one location to another.

       ' ACCEPTS: The name of the source file and destination file.

       ' RETURNS: Nothing

       '---------------------------------------------------------------

       Dim Result As Long

         If Dir(SourceFile) = "" Then

            MsgBox Chr(34) & SourceFile & Chr(34) & _

               " is not valid file name."

         Else

            Result = apiCopyFile(SourceFile, DestFile, False)

         End If

End Sub

In un pulsante:

Call CopyFile(CurrentProject.Path & "\Database.mdb", CurrentProject.Path & "\CopiaDatabase.mdb")

Quello che a me servirebbe, è creare ad ogni click del pulsante un backup nuovo, cioè che non si vada a sovrapporre a quello già esistente.

Ad esempio CopiaDatabase1, CopiaDatabase2, CopiaDatabase3 ecc...

Vladimiro

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

44 risposte

Ordina per: Più utili
  1. Anonimo
    2017-09-02T21:46:31+00:00

    Il codice che ti ho suggerito lo puoi automatizzare e personalizzare. File > salva con nome, è un'operazione manuale, mi sembra che ci sia qualche differenza, non pensi?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-09-02T21:12:50+00:00

    Delle volte non ci accorgiamo di quante novità Access ci mette a disposizione.

    Ad esempio, quello che stiamo discutendo in questo thread, lo troviamo già bell'e fatto in:

    File/Salva con Nome/Backup database...

    Senza fare nulla ci ritroviamo dei backup progressivi comprensivi di data e nome.

    Mi torna in mente Giorgio Rancati conosciuto da tutti per la sua spiccata bravura, che da sempre, almeno così mi è parso di capire, quando ha potuto, ha cercato di dare risposte servendosi delle opzioni predefinite di Access.

    A proposito, qualcuno conosce il motivo per cui non si vede più nel forum? Debbo confessarvi che sento proprio la sua mancanza!!!

    Tornando a noi,

    resta da capire se il consiglio di Sandro, di fare backup a database chiuso, può passare in secondo piano visto che è proprio la Microsoft  a dare la possibilità di farlo a database aperto.

    Saluti.

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-08-30T20:47:03+00:00

    certo che lo fa, ma in un file temporaneo, poi devi copiare il file nella directory finale, con il nome contenente data e ora, è per quello che ci sono tutte quelle istruzioni!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-08-30T19:52:21+00:00

    Scusa ma non riesco più a seguirti. Avevo capito che avevi risolto il problema.

    Nel codice, l'istruzione :

    wBckFile = CurrentProject.Path & "\Backup" & "Backup_" & Date & "_" & Time & "_" & CurrentProject.Name

    Serve a costruire il nome del file di backup, univoco dato che c'è sia la data che l'ora del salvataggio. Tu hai commentato l'istruzione, pensavo quindi che usassi un altro sistema. 

    Cosa contiene la variabile wBckFilequando esegui il codice con il backup? Ricominciamo da qui

    Ciao Francesco,

    ho semplicemente voluto farti osservare che nel database scaricato, che tu hai messo a disposizione, pur eliminando la path di wBckFile, il backup lo fa lo stesso.

    Però è un backup che a me non serve in quanto non rilasciando il nome con la data, lo va sempre a sovrascrivere.

    ( speriamo che qualcun altro possa fare una prova per verificare se il problema è solo mio) 

    Vladimiro

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2017-08-30T18:45:55+00:00

    Scusa ma non riesco più a seguirti. Avevo capito che avevi risolto il problema.

    Nel codice, l'istruzione :

    wBckFile = CurrentProject.Path & "\Backup" & "Backup_" & Date & "_" & Time & "_" & CurrentProject.Name

    Serve a costruire il nome del file di backup, univoco dato che c'è sia la data che l'ora del salvataggio. Tu hai commentato l'istruzione, pensavo quindi che usassi un altro sistema. 

    Cosa contiene la variabile wBckFilequando esegui il codice con il backup? Ricominciamo da qui

    La risposta è stata utile?

    0 commenti Nessun commento