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

  1. #1
    Membre régulier
    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
    Points : 89
    Points
    89
    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 émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    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 566
    Points : 2 525
    Points
    2 525
    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
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  3. #3
    Membre régulier
    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
    Points : 89
    Points
    89
    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 émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 566
    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 566
    Points : 2 525
    Points
    2 525
    Par défaut
    Désolé, mais la réponse est invariable...

    Curt
    Pas de demande par MP, sinon j'correctionne plus, j'dynamite, j'disperse, j'ventile !!!
    ---------------------------------------------------------------------
    Vous avez un talent insoupçonné... Faites-en profitez les autres. Un p'tit CLIC pour une grande cause.
    Et si vous faisiez un bon geste en 2024 ? Soyez utile, ça vous changera ! Moi, ça m’a changé !

  5. #5
    Membre régulier
    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
    Points : 89
    Points
    89
    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 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 088
    Points : 5 204
    Points
    5 204
    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
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  7. #7
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    C'est possible par le Ruban en appelant le contrôle d'Access (2007 et 2010).

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <officeMenu>
            <button idMso="FileCompactAndRepairDatabase"/>
    </officeMenu>

    Dolphy

  8. #8
    Membre régulier
    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
    Points : 89
    Points
    89
    Par défaut
    Ça m’intéresse bien de passer par le ruban ... Mais le code que tu ma donné ne compile pas ....

  9. #9
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Le code est du code XML pour créer des Ruban personnalisé.

    Voici quelques liens pour les bases des Rubans personalisé dans Access 2007 et 2010 :
    http://access.developpez.com/cours/?...2007#ruban2007

    Pour la vue backstage d'Access 2010 :
    http://dolphy35.developpez.com/artic...010/backstage/

    @+

  10. #10
    Membre régulier
    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
    Points : 89
    Points
    89
    Par défaut
    Il n'y a pas moyen de cliqué sur le bouton de compactage du menu en Acces en mettant en place du VB ??

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