Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sauvegarde de la base active

5 réponses
Avatar
Dominique MARTIN
Bonjour,

Tout en étant dans la base active, je souhaite copier la base active dans un
autre répertoire.
J'utilise la commande suivante :
FileCopy strSource, strDestination
strSource représente le chemin complet de la base active
strDestination est le chemin complet de la copie

J'ai une erreur n°70 : Permission refusée

Comment puis-je faire sachant que je suis dans Access 2000 ?

Merci pour votre aide.
Cordialement
Dominique MARTIN

5 réponses

Avatar
Argyronet
Bonsoir,

L'erreur 70 dans ce cas est inéluctable.
Le seul moyen possible que je puisse vous suggérer est d'utiliser l'API
"SHFileOperation" couplée à une structure "SHFILEOPSTRUCT" après avoir
vérifié que la base n'est pas ouverte exclusivement.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Tout en étant dans la base active, je souhaite copier la base active dans un
autre répertoire.
J'utilise la commande suivante :
FileCopy strSource, strDestination
strSource représente le chemin complet de la base active
strDestination est le chemin complet de la copie

J'ai une erreur n°70 : Permission refusée

Comment puis-je faire sachant que je suis dans Access 2000 ?

Merci pour votre aide.
Cordialement
Dominique MARTIN



Avatar
Dominique MARTIN
Bonjour,

Merci pour ta réponse.
La solution avec l'API me semble compliquée : j'abandonne la sauvegarde ;
l'utilisateur fera un copier coller de la base une fois fermée.

Merci
Dominique


Bonsoir,

L'erreur 70 dans ce cas est inéluctable.
Le seul moyen possible que je puisse vous suggérer est d'utiliser l'API
"SHFileOperation" couplée à une structure "SHFILEOPSTRUCT" après avoir
vérifié que la base n'est pas ouverte exclusivement.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Tout en étant dans la base active, je souhaite copier la base active dans un
autre répertoire.
J'utilise la commande suivante :
FileCopy strSource, strDestination
strSource représente le chemin complet de la base active
strDestination est le chemin complet de la copie

J'ai une erreur n°70 : Permission refusée

Comment puis-je faire sachant que je suis dans Access 2000 ?

Merci pour votre aide.
Cordialement
Dominique MARTIN





Avatar
Argyronet
Humm, bien il y a moyen de se passer des API...
Voici un exemple :

Sub CopieSauvegarde()
Dim oFSO As Scripting.FileSystemObject
Const SAUVEGARDE As String = "BACKUP"
Dim strDossier As String
Dim strMaBase As String
Dim strNomBase As String
Dim strMaCopie As String

Set oFSO = New FileSystemObject

strMaBase = CurrentDb.Name
strDossier = Left(strMaBase, InStrRev(strMaBase, "")) & SAUVEGARDE
strNomBase = Mid(strMaBase, InStrRev(strMaBase, "") + 1)
strMaCopie = strDossier & strNomBase

If oFSO.FolderExists(strDossier) = False Then
oFSO.CreateFolder strDossier
End If
On Error Resume Next
With oFSO
.CopyFile strMaBase, strMaCopie, True
End With
Set oFSO = Nothing
If Err <> 0 Then
MsgBox "La base n'a pas été copiée dans le dossier " & SAUVEGARDE & "
!", 48
Err.Clear
End If
End Sub

Bonne journée...
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Merci pour ta réponse.
La solution avec l'API me semble compliquée : j'abandonne la sauvegarde ;
l'utilisateur fera un copier coller de la base une fois fermée.

Merci
Dominique


Bonsoir,

L'erreur 70 dans ce cas est inéluctable.
Le seul moyen possible que je puisse vous suggérer est d'utiliser l'API
"SHFileOperation" couplée à une structure "SHFILEOPSTRUCT" après avoir
vérifié que la base n'est pas ouverte exclusivement.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Tout en étant dans la base active, je souhaite copier la base active dans un
autre répertoire.
J'utilise la commande suivante :
FileCopy strSource, strDestination
strSource représente le chemin complet de la base active
strDestination est le chemin complet de la copie

J'ai une erreur n°70 : Permission refusée

Comment puis-je faire sachant que je suis dans Access 2000 ?

Merci pour votre aide.
Cordialement
Dominique MARTIN







Avatar
Dominique MARTIN
Bonjour,

Merci bien pour ce code que je vais tester.

Sinon j'ai trouvé l'astuce suivante:
J'ai copié normalement la base dans le répertoire de sauvegarde.
Lorsque je veux faire une nouvelle sauvegarde, j'exporte automatiquement via
la commande docmd.transferDatabase uniquement les tables qui ont été
modifiées.
Les tables modifiées sont toujours les mêmes et les autres objets de la base
ne sont pas modifiés.
Je pense que ce process doit être plus rapide que de recopier toute la base.

Merci encore
Dominique


Humm, bien il y a moyen de se passer des API...
Voici un exemple :

Sub CopieSauvegarde()
Dim oFSO As Scripting.FileSystemObject
Const SAUVEGARDE As String = "BACKUP"
Dim strDossier As String
Dim strMaBase As String
Dim strNomBase As String
Dim strMaCopie As String

Set oFSO = New FileSystemObject

strMaBase = CurrentDb.Name
strDossier = Left(strMaBase, InStrRev(strMaBase, "")) & SAUVEGARDE
strNomBase = Mid(strMaBase, InStrRev(strMaBase, "") + 1)
strMaCopie = strDossier & strNomBase

If oFSO.FolderExists(strDossier) = False Then
oFSO.CreateFolder strDossier
End If
On Error Resume Next
With oFSO
.CopyFile strMaBase, strMaCopie, True
End With
Set oFSO = Nothing
If Err <> 0 Then
MsgBox "La base n'a pas été copiée dans le dossier " & SAUVEGARDE & "
!", 48
Err.Clear
End If
End Sub

Bonne journée...
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Merci pour ta réponse.
La solution avec l'API me semble compliquée : j'abandonne la sauvegarde ;
l'utilisateur fera un copier coller de la base une fois fermée.

Merci
Dominique


Bonsoir,

L'erreur 70 dans ce cas est inéluctable.
Le seul moyen possible que je puisse vous suggérer est d'utiliser l'API
"SHFileOperation" couplée à une structure "SHFILEOPSTRUCT" après avoir
vérifié que la base n'est pas ouverte exclusivement.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Tout en étant dans la base active, je souhaite copier la base active dans un
autre répertoire.
J'utilise la commande suivante :
FileCopy strSource, strDestination
strSource représente le chemin complet de la base active
strDestination est le chemin complet de la copie

J'ai une erreur n°70 : Permission refusée

Comment puis-je faire sachant que je suis dans Access 2000 ?

Merci pour votre aide.
Cordialement
Dominique MARTIN









Avatar
Argyronet
Oui, c'est exact. Ca marche aussi... et effet, si vous ne copiez que certains
objets, c'est + rapide.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Merci bien pour ce code que je vais tester.

Sinon j'ai trouvé l'astuce suivante:
J'ai copié normalement la base dans le répertoire de sauvegarde.
Lorsque je veux faire une nouvelle sauvegarde, j'exporte automatiquement via
la commande docmd.transferDatabase uniquement les tables qui ont été
modifiées.
Les tables modifiées sont toujours les mêmes et les autres objets de la base
ne sont pas modifiés.
Je pense que ce process doit être plus rapide que de recopier toute la base.

Merci encore
Dominique


Humm, bien il y a moyen de se passer des API...
Voici un exemple :

Sub CopieSauvegarde()
Dim oFSO As Scripting.FileSystemObject
Const SAUVEGARDE As String = "BACKUP"
Dim strDossier As String
Dim strMaBase As String
Dim strNomBase As String
Dim strMaCopie As String

Set oFSO = New FileSystemObject

strMaBase = CurrentDb.Name
strDossier = Left(strMaBase, InStrRev(strMaBase, "")) & SAUVEGARDE
strNomBase = Mid(strMaBase, InStrRev(strMaBase, "") + 1)
strMaCopie = strDossier & strNomBase

If oFSO.FolderExists(strDossier) = False Then
oFSO.CreateFolder strDossier
End If
On Error Resume Next
With oFSO
.CopyFile strMaBase, strMaCopie, True
End With
Set oFSO = Nothing
If Err <> 0 Then
MsgBox "La base n'a pas été copiée dans le dossier " & SAUVEGARDE & "
!", 48
Err.Clear
End If
End Sub

Bonne journée...
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Merci pour ta réponse.
La solution avec l'API me semble compliquée : j'abandonne la sauvegarde ;
l'utilisateur fera un copier coller de la base une fois fermée.

Merci
Dominique


Bonsoir,

L'erreur 70 dans ce cas est inéluctable.
Le seul moyen possible que je puisse vous suggérer est d'utiliser l'API
"SHFileOperation" couplée à une structure "SHFILEOPSTRUCT" après avoir
vérifié que la base n'est pas ouverte exclusivement.
--
Argy
http://argyronet.developpez.com/
Créez des programmes avec Microsoft Access 2007 (ISBN-2742982442 )



Bonjour,

Tout en étant dans la base active, je souhaite copier la base active dans un
autre répertoire.
J'utilise la commande suivante :
FileCopy strSource, strDestination
strSource représente le chemin complet de la base active
strDestination est le chemin complet de la copie

J'ai une erreur n°70 : Permission refusée

Comment puis-je faire sachant que je suis dans Access 2000 ?

Merci pour votre aide.
Cordialement
Dominique MARTIN