IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Compacter une base access 2007 en VBA


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 151
    Par défaut Compacter une base access 2007 en VBA
    Bonjour,
    J'aimerais sur l'appui d'un bouton compacter la base de donnée Access 2007 extension .ACCDB
    Je n'arrive pas a trouver le code correspondant merci !

  2. #2
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    bonjour theuma,

    On ne peut pas compacter une base ouverte. Il te faut donc compacter une base à partir d'une autre en créant un formulaire plus bouton (par exemple). Pour ce qui est du code VBA, jette un oeil dans la FAQ.

    Curt

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 151
    Par défaut
    C'est bizarre car Access arrive à le faire lui ... Il ferme la base, l'a compacte et l'a re-ouvre ... il n'y a pas moyen de faire la même chose ?

  4. #4
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Désolé, mais la réponse est invariable...

    Curt

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 151
    Par défaut
    C'est bien dommage que Microsoft n'est pas pensé à ca, parce que le faire à chaque fermeture de base, c'est trèèèèès long !!!!

  6. #6
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 129
    Par défaut
    Bonjour,

    Je le fais tous les 3 jours à l'ouverture de la frontale par le 1er utilisateur, avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    '******************************* COMPACTE LA DORSALE
    Public Function Compacte()
    If Not Mode_debug Then On Error GoTo err:
    Dim f As String, i As Integer, n As Integer, d As Date
    Dim r As Double
     
    106 If Len(Dir(Client_path & "planetDB.ldb")) = 0 Then
    110   r = SysCmd(1, "Compactage de la base en cours...", 2)
    112   f = Client_path & "planet"
    114   On Error GoTo e1:
    116   Kill f & "TMP.mdb" '10.7a au cas où une vieille version traine...
    118 e1: On Error GoTo err:
    122   DBEngine.CompactDatabase f & "DB.mdb", f & "TMP.mdb", , , "MS Access;PWD=toto"
    124   DoEvents  '10.9h par précaution
    125   r = SysCmd(2, 1)
    126   Kill f & "DB.mdb" '2. Suppression de la base originale
    128   DoEvents  '10.9h par précaution
    130   Name f & "TMP.mdb" As f & "DB.mdb" '3. Renommer la base compactée avec le nom de la base originale
     
    134   CurrentDb.Execute "UPDATE parametres set date_compactage=cdate('" & DATE & "') WHERE ligne=1;", dbFailOnError     
    136   r = SysCmd(3)
    138   Compacte = "OK"
        Else
    140   MsgBox "La base n'a pas pu être compactée car elle est en cours d'utilisation." & CR _
          & "Vérifiez qu'aucune fenêtre n'est ouverte sur un poste.", vbInformation, ""
    142   Compacte = "NOK"
        End If
        Exit Function
    err: Call message("Erreur " & err.Number & "/" & Erl & " dans fonctions.compacte : " & err.description)
    End Function
    Il faut l'exécuter avant que la frontale ouvre une fenêtre avec des données

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/08/2011, 11h59
  2. Compacter une base access
    Par pat04 dans le forum Access
    Réponses: 2
    Dernier message: 08/12/2006, 00h43
  3. comment réparer et compacter une base access sous vb6
    Par rallain dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/11/2006, 10h42
  4. Comment compacter une base Access avec ADO ?
    Par langela94 dans le forum VBA Access
    Réponses: 3
    Dernier message: 08/12/2005, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo