Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/03/2011, 19h33   #1
Membre actif
 
Homme Dominique
Gestion parc machine, assistance informatique, développement Access, Excel...
Inscription : février 2007
Messages : 130
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 56
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Gestion parc machine, assistance informatique, développement Access, Excel...
Secteur : Service public

Informations forums :
Inscription : février 2007
Messages : 130
Points : 161
Points : 161
Par défaut Sauvegarde automatique base courante

Bonsoir.
Ayant eu, à plusieurs reprises, ma base de données Access 2007 inutilisable suite au compactage lors de la fermeture, je souhaite en effectuer une copie de sauvegarde lors de la fermeture du formulaire principal
J'ai utilisé la commande FileCopy, un Shell xcopy mais je bute sur une l'interdiction de copie parce qu'elle est encore ouverte.
J'ai bien trouvé sur le forum une sauvegarde par script vbs (que je n'ai pas encore analysé), mais je préférerais un code totalement interne à la base.
Avez-vous une solution pour contourner ce blocage?
Cordialement, Dominique
PapouDomi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 22h43   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 624
Points : 11 624
Bonjour,

D'une part il faut rechercher les causes du problème de compactage. Access est-il à jour, le système également ?

Dans l'immédiat un Shell "Copy ..." devra faire l'affaire.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 00h07   #3
Membre actif
 
Homme Dominique
Gestion parc machine, assistance informatique, développement Access, Excel...
Inscription : février 2007
Messages : 130
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 56
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Gestion parc machine, assistance informatique, développement Access, Excel...
Secteur : Service public

Informations forums :
Inscription : février 2007
Messages : 130
Points : 161
Points : 161
Bonsoir.
Merci pour la réponse rapide.
Mais cela ne résoud pas mon problème
Code :
retval = Shell("copy " & Src & ", " & Dst, vbHide) '=>copy C:\Bdd\Bdd1.accdb, C:\Bdd\Tmp.mdb
renvoi "Erreur d'exécution 53 Fichier introuvable" alors que cela fonctionne correctement dans une fenêtre Dos. Cela ne me paraît pas illogique car le shell ne doit pouvoir lancer que des commandes dos externes.
J'ai donc essayé xcopy.
La, pas de problème de code qui s'exécute normalement car xcopy est une commande externe mais pas de copie de fichier.
Sous fenêtre Dos, xcopy fonctionne mais demande de confirmation fichier ou répertoire. Source du non fonctionnement???
De plus, les espaces dans les noms de répertoire ou de fichiers semblent ajouter d'autres problèmes.
Quant au souci de plantage de la BDD lors du redémarrage après compactage, il s'est produit sur mon PC perso, soit, mais aussi au bureau où les machines (plusieurs milliers) sont en réseau et très régulièrement maintenues.
Je tourne donc en boucle et vais finir chèvre. Mais c'est là un des plaisirs de la programmation.....
Cordialement, Dominique
PapouDomi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 08h42   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 624
Points : 11 624
Bdd est-il le vrai répertoire ?
Sinon /Y avec un Xcopy force la copie sans confirmation.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 11h31   #5
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 279
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 279
Points : 478
Points : 478
Personnellement, j’utilise le code suivant :

Code :
1
2
3
4
5
6
7
Dim fso As Object, strDest As String
strDest = CurrentProject.Path & "\" & _
          Left(CurrentProject.Name, Len(CurrentProject.Name) - 4) & ".bak"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile CurrentProject.FullName, strDest
Set fso = Nothing
MsgBox "Le programme actuel a été sauvegardé dans le répertoire courant avec l’extension .bak."
Ainsi, le programme est copié sous son nom original, et l’extension .mdb est remplacée par . bak (à adapter si le format est accdb ou autre)

Dans mes applications, ce code fonctionne très bien. Ceci dit, le conseil de Loufab concernant la recherche des causes du problème au compactage me semble particulièrement judicieux.

Cordialement
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/03/2011, 13h19   #6
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
Personnellement, je me contente d'exporter l'ensemble des tables dans une base de données annexe.
la commande est placée sur le timer du menu principal et s'exécute toutes les 6 heures, une commande de fermeture de la base est également agrémentée de ce transfert de tables.
Aucun problème depuis la mise en service de ce système.
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/03/2011, 17h07   #7
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonjour.

J'ai aussi l'habitude de sauvegarder les tables et les relations dans une file de BD enregistrées dans un répertoire particulier.

L'avantage en cas d'évolution de la base, sans modificatoin de la structure des données, la nouvelle version peut être mise au point pendant que les utilisateurs utilisent l'ancienne. Lors du déploiement, l'utilisateur fait une sauvegarde de l'ancienne version, ouvre la nouvelle version, charge les tables et relations et c'est reparti.

Cordialement,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/03/2011, 20h23   #8
Membre actif
 
Homme Dominique
Gestion parc machine, assistance informatique, développement Access, Excel...
Inscription : février 2007
Messages : 130
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 56
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Gestion parc machine, assistance informatique, développement Access, Excel...
Secteur : Service public

Informations forums :
Inscription : février 2007
Messages : 130
Points : 161
Points : 161
Bonsoir.
Ce matin j'ai effectivement trouvé ce qu'il me fallait et cela est très proche de la solution proposé par RobiPMS utilisant le fso.CopyFile.
Quant à trouver les causes du plantage lors du compactage...
C'est une autre histoire. D'autant moins facile à trouver que c'est très ponctuel mais toujours durant le développement.
Même ci ce n'est pas souvent, c'est toujours très agaçant de perdre le travail de quelques heures
Merci à tous. Dominique.
PapouDomi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2011, 12h08   #9
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
pour le plantage au compactage, peut-etre une piste...

Lors du developpement ou lors de modifs dans la base j'importe parfois 1 ou 2 formulaires d'une copie de la dite bdd, et, si j'oublie de faire un débogage du code j'ai un plantage de la base au test du formulaire ou au compactage si je le lance avant essai.

Sans doute que le ou les nouveaux forms créent un erreur dans les fichiers systèmes de la base de données.

Il suffit de rouvrir en mode conception et de faire un débogage.
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 09h24   #10
Membre actif
 
Homme Dominique
Gestion parc machine, assistance informatique, développement Access, Excel...
Inscription : février 2007
Messages : 130
Détails du profil
Informations personnelles :
Nom : Homme Dominique
Âge : 56
Localisation : France, Puy de Dôme (Auvergne)

Informations professionnelles :
Activité : Gestion parc machine, assistance informatique, développement Access, Excel...
Secteur : Service public

Informations forums :
Inscription : février 2007
Messages : 130
Points : 161
Points : 161
Bonjour.
Merci @rkane.
Je n'ai pas vraiment noté quelles sont les conditions de ce plantage mais, à la réflexion, cela me semble proche de ce que tu décris car toujours en cours de développement et je me souviens d'avoir aussi effectué des copies de formulaire.
Je vais être vigilant et noter ce que je faisait lors des quelques plantages.
Cordialement, Dominique.
PapouDomi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 14h05   #11
Membre éclairé
 
Avatar de @rkane
 
Homme Patrick
developpeur amateur dans mon cadre professionnel
Inscription : juin 2006
Messages : 499
Détails du profil
Informations personnelles :
Nom : Homme Patrick
Âge : 52
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : developpeur amateur dans mon cadre professionnel
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 499
Points : 360
Points : 360
ok tiens moi au courant à l'occasion
__________________

@rkane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h08.


 
 
 
 
Partenaires

Hébergement Web