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

VBA Access Discussion :

Compactage de la base en cours


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Compactage de la base en cours
    bonjour,

    j'aimerais compacter ma base en cours d'utilisation à l'aide de code.

    Quelqu un connait il une procédure capable d'effectuer cela

    Merci d avance

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Juin 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    je cherchais la meme chose que toi et j ai trouvé ce qui suit mais je n y ai pas encore testé :

    Le code qui suit permet de compacter une base de données, mais il ne peut figurer dans la base de données à traiter. Vous devez donc créer une autre base, et vous placerez le code ci-dessous dans un module quelconque de cette autre base.

    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
    ' --------------------------------------------------
    ' REPARATION ET COMPACTAGE DE BASE DE DONNEES
    ' --------------------------------------------------
    ' Entrée : strBase <- Chemin d'accès à la base de données
    '          strTemp <- Nom de la base de données temporaire
    '
    Function RepairCompact(ByVal strBase As String, ByVal strTemp As String) As Boolean
    On Error GoTo RCErr
     
    ' Détruire la base temporaire si elle existe
    If Dir$(strTemp) <> "" Then Kill strTemp
     
    ' Réparer et compacter la base de données
    DBEngine.RepairDatabase strBase
    DBEngine.CompactDatabase strBase, strTemp
     
    ' Si tout a marché, détruire la base d'origine et renommer la base temporaire
    Kill strBase
    Name strTemp As strBase
    RepairCompact = True
    Exit Function
     
    RCErr:
        MsgBox "L'erreur suivante s'est produite : " & Err.Description, vbCritical, "Compactage"
        RepairCompact = False
        Exit Function
    End Function

    --------------------------------------------------------------------------------

    Pour tester, ouvrez la fenêtre de debugging, et tapez-y :
    ? RepairCompact("chemin de la base à compacter", "chemin d'une base temporaire") puis [ENTREE].

    Par exemple :
    ? RepairCompact("c:\mes documents\access\clients.mdb", "c:\mes documents\access\clients.tmp")

    Vous pouvez bien sûr placer cette ligne dans le code d'un bouton de commande, sur un formulaire.





    bon courage

  3. #3
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 47
    Points : 41
    Points
    41
    Par défaut


    http://access.developpez.com/faq/?page=General#Compact

    EDIT :
    j'ai pas vu la remarque désolé:
    Citation Envoyé par Maxence hubiche
    Remarque : Cette dernière solution ne vous permet pas de compacter la base de données en cours.

  4. #4
    Membre du Club

    Inscrit en
    Juillet 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 34
    Points : 53
    Points
    53
    Par défaut
    Salut,

    J'ai donné une solution sur ce post:
    http://www.developpez.net/forums/viewtopic.php?t=88658

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    merci a tous

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    il y a une DLL super sur internet, à télécharger ...

    faites une recherches dur Google à tsisoon
    il y a plein d'outils divers et variés.
    tsisoon90.dll permet de compacter très simplement la base de données en cours.
    Quelques lignes de code, et le boulot se fait.

    le site où trouver la dll :
    http://www.trigeminal.com/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [COMPACTAGE] Compacter une base à partir de Java
    Par narmataru dans le forum Access
    Réponses: 2
    Dernier message: 07/11/2005, 21h14
  2. [c#] compactage d'une base Access
    Par froggyinfo dans le forum Access
    Réponses: 16
    Dernier message: 26/10/2005, 14h20
  3. Compactage de la base en cours
    Par Maxence HUBICHE dans le forum Access
    Réponses: 26
    Dernier message: 16/12/2004, 15h22
  4. compactage de la base de donnée
    Par Little-Freud dans le forum Access
    Réponses: 3
    Dernier message: 29/10/2004, 13h56
  5. Le compactage d'une base ne compacte rien
    Par scorplex dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/04/2004, 09h34

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