web-dev-qa-db-fra.com

Sauvegarde de la base de données d'accès quotidienne / hebdomadaire

Nous avons une base de données Microsoft Access divisée en backend/frontend. Ce que je recherche, c'est de pouvoir sauvegarder automatiquement ces fichiers quotidiennement ou hebdomadairement - quelle est la meilleure façon de procéder? Nous ne voulons pas avoir à nous soucier des sauvegardes de la base de données, sachez simplement qu'elles se produisent automatiquement selon un calendrier.

Merci.

5
Sean Hawkins

(Emprunt de ma réponse précédente ici ...)

re: effectuer réellement la sauvegarde

La sauvegarde d'une base de données Access native consiste simplement à copier l'intégralité du fichier de base de données (.mdb pour Access_2003 et versions antérieures, .accdb pour Access_2007 et versions ultérieures). Tout langage de script fonctionnerait, même un simple fichier batch Windows qui fait quelque chose comme

copy /Y d:\apps\databases\mydatabase.accdb z:\backups\databases\*.*

re: planification automatique de la sauvegarde

Le Planificateur de tâches dans Windows pourrait s'en occuper pour vous. Une fois que vous avez créé votre script pour copier le ou les fichiers de base de données, vous pouvez créer une tâche planifiée pour l'exécuter périodiquement. Voir l'article MSDN tilisation du Planificateur de tâches (Windows) pour plus d'informations.

5
Gord Thompson

Vous pouvez écrire un sous pour sauvegarder la base de données dans un dossier spécifié et exécuter ce sous lorsque la base de données est lancée. Il existe de nombreuses façons de le faire, mais j'utilise personnellement les éléments suivants:

Function fMakeBackup() As Boolean

    Dim Source As String
    Dim Target As String
    Dim retval As Integer


    Source = CurrentDb.Name

    Target = "Z:\My Apps\Backups\YourFielName"
    Target = Target & Format(Date, "mm-dd") & "   "
    Target = Target & Format(Time, "hh-mm") & ".accdb"

    ' create the backup
    retval = 0
    Dim objFSO As Object
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    retval = objFSO.CopyFile(Source, Target, True)
    Set objFSO = Nothing

End Function
4
Tera