SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Votre Assistante : https://www.votreassistante.net - le 19/05/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
1
Comment compacter une base de données Access en VBA ?
Comme nous l’avions vu dans un des tout premiers tutoriels sur Votre Assistante, compacter
une base de données Access permet de réduire le poids du fichier, mais aussi, parfois, de le
réparer. Dans ce tutoriel, nous allons voir comment compacter une base de données Access
en VBA (Visual Basic for Applications, le langage de programmation de Microsoft), ce qui
nous permettra de lancer le compactage sur simple clic d’un bouton : idéal pour les utilisateurs
pour lesquels vous ne souhaitez pas donner l’accès au ruban notamment.
Suivez bien ce tutoriel jusqu’à la fin pour découvrir le tout nouvel outil Access que je viens de
créer et profiter de son tarif de lancement .
Comment compacter une base de données Access manuellement ?
Pour rappel, pour compacter manuellement une base de données Access, il vous suffit de vous
rendre dans le menu Outils de base de données et de cliquer sur Compacter et réparer une
base de données .
Comment compacter une base de données Access en VBA à la fermeture du fichier ?
Création du bouton pour compacter la base de données
Pour compacter la base de données Access actuellement ouverte en utilisant du code VBA, nous
allons créer un bouton sur un formulaire. Pour cela, ouvrez un formulaire existant en Mode
Création ou créez-en un qui ne servira qu’au compactage en allant dans
le menu Créer > Création de formulaire .
Dans le menu Conception de formulaires, dans les contrôles, cliquez sur le contrôle
Bouton avant de faire un clic sur le formulaire. Si les Assistants Contrôle sont activés sur
votre logiciel, vous devriez avoir l’assistant qui s’ouvre. Comme nous allons faire appel à du
code, nous n’en avons pas besoin, vous pouvez le fermer en cliquant sur Annuler.
Votre Assistante : https://www.votreassistante.net - le 19/05/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
2
Dans la Feuille de propriétés (si elle n’apparaît pas, cliquez sur Feuille de
propriétés dans le menu Conception de formulaires), en gardant sélectionné le
bouton, écrivez le texte que vous souhaitez voir apparaître dessus, à la ligne Légende de l’onglet
Format et, dans l’onglet Autres, à la ligne Nom, donnez-lui un nom : Compacter par exemple.
Vous pouvez aussi lui donner l’apparence de votre choix via le groupe Contrôler la mise en
forme du menu Format :
Écriture de la procédure pour compacter la base de données
Toujours en gardant sélectionné le bouton, à l’onglet Évènement de la Feuille de
propriétés , cliquez sur les 3 points à la fin de la ligne Au clic et sélectionnez le
Générateur de code : une procédure nommée Compacter_Click apparaît dans la fenêtre VBA.
Saisissez à l’intérieur :
Application.SetOption "Auto compact", True
1
Puis, fermez la fenêtre VBA et passez en Mode Formulaire par un clic
droit sur l’onglet du formulaire. Cliquez sur le bouton que nous venons de créer : pour l’instant,
rien ne se passe, c’est normal. En effet, le comptage ne peut se faire que lorsque la base de
données est fermée. C’est d’ailleurs ce qui se produit lorsque vous utilisez la commande
classique de compactage, car Access ferme et rouvre la base de données, mais, comme il le fait
très rapidement, cela ne se voit quasiment pas à moins d’avoir une base de données très lourde.
Le code que nous venons d’écrire permet en fait d’activer l’option qui se trouve dans les options
d’Access via le menu Fichier > Options > Base de données active > Compacter lors de la
fermeture. Avec cette procédure, un seul clic sur le bouton suffira pour toute la durée de vie de
Votre Assistante : https://www.votreassistante.net - le 12/04/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
3
la base de données puisque l’option sera toujours active après le clic sur le bouton du formulaire.
Cependant, il n’y aurait pas trop d’intérêt à créer un bouton pour une seule utilisation. Nous
allons donc créer un autre bouton qui permettra de désactiver cette option toujours par un seul
clic. Il est parfois préférable de ne pas cocher cette case en permanence lorsque vous utilisez
une base de données assez conséquente, car le compactage se produira à chaque fermeture, ce
qui peut être chronophage pour une utilisation quotidienne.
Création du bouton pour ne plus compacter la base de données
Repassez en Mode Création par un clic droit sur l’onglet du formulaire.
Créez un autre bouton comme précédemment pour le bouton Compacter en lui donnant le Nom
Compacter_non et la Légende Ne plus compacter par exemple. Pour aller plus vite, sélectionnez
le précédent bouton, faites un Ctrl + C, Ctrl + V et modifiez simplement la Légende et le Nom
dans la Feuille de propriétés :
Écriture de la procédure pour ne plus compacter la base de données
Toujours en gardant sélectionné le bouton, à l’onglet Évènement de la Feuille de
propriétés , cliquez sur les 3 points à la fin de la ligne Au clic et sélectionnez le
Générateur de code : une procédure nommée Compacter_non_Click apparaît dans la fenêtre
VBA.
Saisissez, cette fois-ci, à l’intérieur :
Application.SetOption "Auto compact", False
1
Désormais, un clic sur Compacter activera l’option de compactage à la fermeture de la base de
données et un clic sur Ne plus compacter la désactivera.
Votre Assistante : https://www.votreassistante.net - le 12/04/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
4
À la suite des 2 lignes de code, vous pouvez ajouter une MsgBox comme nous allons le voir
dans la deuxième partie de ce tutoriel afin de prévenir l’utilisateur que l’action a bien été
effectuée.
Comment compacter une base de données Access à partir d’une autre base de données ?
Comme vous avez pu le voir avec la méthode précédente, la base de données Access ne se
compacte que lorsqu’elle est fermée et lorsque l’utilisateur choisit d’activer ou non le
compactage en cliquant sur le bouton adéquat.
Par simplicité, il peut être préférable de lancer le compactage à partir d’une autre base de
données lorsque cela est nécessaire.
Création de la base de données Access, de son formulaire et de son bouton
Créez une nouvelle base de données vide en cliquant sur Fichier > Nouveau > Base de données
vide . Donnez un nom à la base de données, choisissez l’emplacement et
cliquez sur Créer .
Fermez la table qui est ouverte en cliquant sur la croix de l’onglet, puis créez un formulaire via
le menu Créer > Création de formulaire . Dans le menu Conception de
formulaires, cliquez sut le contrôle Bouton et cliquez sur le formulaire. Une nouvelle
fois, si les Assistants Contrôles sont activés, l’assistant s’ouvre, fermez-le en cliquant sur le
bouton Annuler. Paramétrez le bouton de la même manière que le tout premier bouton créé
dans la base de données précédente :
Votre Assistante : https://www.votreassistante.net - le 12/04/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
5
Écriture de la procédure pour compacter une autre base de données Access
Toujours en gardant sélectionné le bouton, à l’onglet Évènement de la Feuille de
propriétés , cliquez sur les 3 points à la fin de la ligne Au clic et sélectionnez le
Générateur de code : une procédure nommée Compacter_Click apparaît dans la fenêtre VBA.
Saisissez à l’intérieur :
DBEngine.CompactDatabase "C:UsersLydiaDesktopMa base de données test.accdb",
1
"C:UsersLydiaDesktopBDD temporaire.accdb"
2
Kill "C:UsersLydiaDesktopMa base de données test.accdb"
3
Name "C:UsersLydiaDesktopBDD temporaire.accdb" As "C:UsersLydiaDesktopMa base
4
de données test.accdb"
5
MsgBox "La base de données est compactée.", vbInformation, "Succès"
6
La première et deuxième ligne permettent de créer une copie de la base de données et de la
compacter. J’ai donc saisi le chemin complet de la base de données à compacter, puis le même
chemin, mais pour une base de données nommée BDD temporaire que vous pouvez remplacer
par un autre nom. Pour ne pas faire d’erreur dans le chemin, je vous conseille de faire un clic
droit sur le fichier en maintenant la touche Maj enfoncée > Copier en tant que chemin d’accès.
À la ligne 3, la base de données précédente est supprimée via l’instruction Kill.
À la ligne 5, je renomme la base de données nommée BDD temporaire par le nom qu’elle avait
au départ : Ma base de données test.
Enfin, à la ligne 6, un message m’alerte que le compactage est terminé.
Votre Assistante : https://www.votreassistante.net - le 12/04/2022
Article écrit par Lydia Provin du site
Votre Assistante : https://www.votreassistante.net
6
Repassez en Mode Formulaire pour tester votre bouton. Si tout s’est bien passé, vous devriez
obtenir ce message :
Si un message d’erreur apparaît, assurez-vous, en premier lieu, que les chemins sont corrects.
Présentation du nouvel utilitaire Access de Votre Assistante
Si vous ne souhaitez pas faire appel à du code VBA pour compacter votre base de données,
mais quand même le faire à partir d’un bouton sur un formulaire, découvrez le tout nouvel
utilitaire Access que je viens de créer. Grâce à lui, vous pourrez compacter votre base de
données, mais aussi exporter les tables au format Excel, les vider, utiliser votre base de
données en réseau très facilement, lui appliquer un mot de passe et afficher le nombre
d’objets qu’elle contient. Vous pourrez l’utiliser avec une base de données contenant ou non
un mot de passe, mais aussi une base de données déjà en réseau. Profitez de son tarif de
lancement sur cette page.
Tutoriel réalisé avec Access Microsoft 365
Voir la version vidéo de cet article

Contenu connexe

Similaire à Comment compacter une base de données Access en VBA.pdf

Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Votre Assistante
 
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Votre Assistante
 
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...Votre Assistante
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Votre Assistante
 
Créer une requête de création de table Access
Créer une requête de création de table AccessCréer une requête de création de table Access
Créer une requête de création de table AccessVotre Assistante
 
Manuel wordpress ad avenue
Manuel wordpress   ad avenueManuel wordpress   ad avenue
Manuel wordpress ad avenueFrançois Huynh
 
Sauvegarder bases donnes sur lecteur réseau
Sauvegarder bases donnes sur lecteur réseauSauvegarder bases donnes sur lecteur réseau
Sauvegarder bases donnes sur lecteur réseauMajid CHADAD
 
Le Module Producteur.pdf
Le Module Producteur.pdfLe Module Producteur.pdf
Le Module Producteur.pdfBSOLUTION1
 
Liste des principaux codes VBA que j’utilise sur Access
Liste des principaux codes VBA que j’utilise sur AccessListe des principaux codes VBA que j’utilise sur Access
Liste des principaux codes VBA que j’utilise sur AccessVotre Assistante
 
Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...
Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...
Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...Votre Assistante
 
Document de prise en main PoolMedias
Document de prise en main PoolMediasDocument de prise en main PoolMedias
Document de prise en main PoolMediasLevacomm
 
Pourquoi et comment créer un script Photoshop ?
Pourquoi et comment créer un script Photoshop ?Pourquoi et comment créer un script Photoshop ?
Pourquoi et comment créer un script Photoshop ?Votre Assistante
 
mode-sans-echec-ne-fonctionne-pas
mode-sans-echec-ne-fonctionne-pasmode-sans-echec-ne-fonctionne-pas
mode-sans-echec-ne-fonctionne-passsuser1eca7d
 

Similaire à Comment compacter une base de données Access en VBA.pdf (17)

Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
 
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
 
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
Astuce Word VBA : insérer un mot ou plusieurs avec une mise en forme spécifiq...
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?
 
Access 2007
Access 2007Access 2007
Access 2007
 
Créer une requête de création de table Access
Créer une requête de création de table AccessCréer une requête de création de table Access
Créer une requête de création de table Access
 
Manuel wordpress ad avenue
Manuel wordpress   ad avenueManuel wordpress   ad avenue
Manuel wordpress ad avenue
 
Sauvegarder bases donnes sur lecteur réseau
Sauvegarder bases donnes sur lecteur réseauSauvegarder bases donnes sur lecteur réseau
Sauvegarder bases donnes sur lecteur réseau
 
Le Module Producteur.pdf
Le Module Producteur.pdfLe Module Producteur.pdf
Le Module Producteur.pdf
 
Liste des principaux codes VBA que j’utilise sur Access
Liste des principaux codes VBA que j’utilise sur AccessListe des principaux codes VBA que j’utilise sur Access
Liste des principaux codes VBA que j’utilise sur Access
 
Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...
Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...
Créer une facture avec Access – Partie 3/3 – Création des états et de l’inter...
 
Document de prise en main PoolMedias
Document de prise en main PoolMediasDocument de prise en main PoolMedias
Document de prise en main PoolMedias
 
Benchmark - COFIDIS
Benchmark - COFIDISBenchmark - COFIDIS
Benchmark - COFIDIS
 
Pourquoi et comment créer un script Photoshop ?
Pourquoi et comment créer un script Photoshop ?Pourquoi et comment créer un script Photoshop ?
Pourquoi et comment créer un script Photoshop ?
 
MASTER1-IUP2012-LILLE1
MASTER1-IUP2012-LILLE1MASTER1-IUP2012-LILLE1
MASTER1-IUP2012-LILLE1
 
mode-sans-echec-ne-fonctionne-pas
mode-sans-echec-ne-fonctionne-pasmode-sans-echec-ne-fonctionne-pas
mode-sans-echec-ne-fonctionne-pas
 

Plus de Votre Assistante

Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Votre Assistante
 
Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Votre Assistante
 
Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Votre Assistante
 
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Votre Assistante
 
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Votre Assistante
 
Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Votre Assistante
 
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Votre Assistante
 
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Votre Assistante
 
Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Votre Assistante
 
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Votre Assistante
 
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Votre Assistante
 
Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Votre Assistante
 
Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Votre Assistante
 
Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Votre Assistante
 
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Votre Assistante
 
Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Votre Assistante
 
Créer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorCréer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorVotre Assistante
 
Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?Votre Assistante
 
4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce Bonus4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce BonusVotre Assistante
 
Comment convertir une image en noir et blanc sur Illustrator ?
Comment convertir une image en noir et blanc sur Illustrator ?Comment convertir une image en noir et blanc sur Illustrator ?
Comment convertir une image en noir et blanc sur Illustrator ?Votre Assistante
 

Plus de Votre Assistante (20)

Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?
 
Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?
 
Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?
 
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
 
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
 
Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?
 
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
 
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
 
Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?
 
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
 
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
 
Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?
 
Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?
 
Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?
 
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
 
Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?
 
Créer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorCréer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec Illustrator
 
Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?Pourquoi et comment créer un plan sur Excel ?
Pourquoi et comment créer un plan sur Excel ?
 
4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce Bonus4 astuces avancées pour PowerPoint et une astuce Bonus
4 astuces avancées pour PowerPoint et une astuce Bonus
 
Comment convertir une image en noir et blanc sur Illustrator ?
Comment convertir une image en noir et blanc sur Illustrator ?Comment convertir une image en noir et blanc sur Illustrator ?
Comment convertir une image en noir et blanc sur Illustrator ?
 

Comment compacter une base de données Access en VBA.pdf

  • 1. Votre Assistante : https://www.votreassistante.net - le 19/05/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 1 Comment compacter une base de données Access en VBA ? Comme nous l’avions vu dans un des tout premiers tutoriels sur Votre Assistante, compacter une base de données Access permet de réduire le poids du fichier, mais aussi, parfois, de le réparer. Dans ce tutoriel, nous allons voir comment compacter une base de données Access en VBA (Visual Basic for Applications, le langage de programmation de Microsoft), ce qui nous permettra de lancer le compactage sur simple clic d’un bouton : idéal pour les utilisateurs pour lesquels vous ne souhaitez pas donner l’accès au ruban notamment. Suivez bien ce tutoriel jusqu’à la fin pour découvrir le tout nouvel outil Access que je viens de créer et profiter de son tarif de lancement . Comment compacter une base de données Access manuellement ? Pour rappel, pour compacter manuellement une base de données Access, il vous suffit de vous rendre dans le menu Outils de base de données et de cliquer sur Compacter et réparer une base de données . Comment compacter une base de données Access en VBA à la fermeture du fichier ? Création du bouton pour compacter la base de données Pour compacter la base de données Access actuellement ouverte en utilisant du code VBA, nous allons créer un bouton sur un formulaire. Pour cela, ouvrez un formulaire existant en Mode Création ou créez-en un qui ne servira qu’au compactage en allant dans le menu Créer > Création de formulaire . Dans le menu Conception de formulaires, dans les contrôles, cliquez sur le contrôle Bouton avant de faire un clic sur le formulaire. Si les Assistants Contrôle sont activés sur votre logiciel, vous devriez avoir l’assistant qui s’ouvre. Comme nous allons faire appel à du code, nous n’en avons pas besoin, vous pouvez le fermer en cliquant sur Annuler.
  • 2. Votre Assistante : https://www.votreassistante.net - le 19/05/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 2 Dans la Feuille de propriétés (si elle n’apparaît pas, cliquez sur Feuille de propriétés dans le menu Conception de formulaires), en gardant sélectionné le bouton, écrivez le texte que vous souhaitez voir apparaître dessus, à la ligne Légende de l’onglet Format et, dans l’onglet Autres, à la ligne Nom, donnez-lui un nom : Compacter par exemple. Vous pouvez aussi lui donner l’apparence de votre choix via le groupe Contrôler la mise en forme du menu Format : Écriture de la procédure pour compacter la base de données Toujours en gardant sélectionné le bouton, à l’onglet Évènement de la Feuille de propriétés , cliquez sur les 3 points à la fin de la ligne Au clic et sélectionnez le Générateur de code : une procédure nommée Compacter_Click apparaît dans la fenêtre VBA. Saisissez à l’intérieur : Application.SetOption "Auto compact", True 1 Puis, fermez la fenêtre VBA et passez en Mode Formulaire par un clic droit sur l’onglet du formulaire. Cliquez sur le bouton que nous venons de créer : pour l’instant, rien ne se passe, c’est normal. En effet, le comptage ne peut se faire que lorsque la base de données est fermée. C’est d’ailleurs ce qui se produit lorsque vous utilisez la commande classique de compactage, car Access ferme et rouvre la base de données, mais, comme il le fait très rapidement, cela ne se voit quasiment pas à moins d’avoir une base de données très lourde. Le code que nous venons d’écrire permet en fait d’activer l’option qui se trouve dans les options d’Access via le menu Fichier > Options > Base de données active > Compacter lors de la fermeture. Avec cette procédure, un seul clic sur le bouton suffira pour toute la durée de vie de
  • 3. Votre Assistante : https://www.votreassistante.net - le 12/04/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 3 la base de données puisque l’option sera toujours active après le clic sur le bouton du formulaire. Cependant, il n’y aurait pas trop d’intérêt à créer un bouton pour une seule utilisation. Nous allons donc créer un autre bouton qui permettra de désactiver cette option toujours par un seul clic. Il est parfois préférable de ne pas cocher cette case en permanence lorsque vous utilisez une base de données assez conséquente, car le compactage se produira à chaque fermeture, ce qui peut être chronophage pour une utilisation quotidienne. Création du bouton pour ne plus compacter la base de données Repassez en Mode Création par un clic droit sur l’onglet du formulaire. Créez un autre bouton comme précédemment pour le bouton Compacter en lui donnant le Nom Compacter_non et la Légende Ne plus compacter par exemple. Pour aller plus vite, sélectionnez le précédent bouton, faites un Ctrl + C, Ctrl + V et modifiez simplement la Légende et le Nom dans la Feuille de propriétés : Écriture de la procédure pour ne plus compacter la base de données Toujours en gardant sélectionné le bouton, à l’onglet Évènement de la Feuille de propriétés , cliquez sur les 3 points à la fin de la ligne Au clic et sélectionnez le Générateur de code : une procédure nommée Compacter_non_Click apparaît dans la fenêtre VBA. Saisissez, cette fois-ci, à l’intérieur : Application.SetOption "Auto compact", False 1 Désormais, un clic sur Compacter activera l’option de compactage à la fermeture de la base de données et un clic sur Ne plus compacter la désactivera.
  • 4. Votre Assistante : https://www.votreassistante.net - le 12/04/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 4 À la suite des 2 lignes de code, vous pouvez ajouter une MsgBox comme nous allons le voir dans la deuxième partie de ce tutoriel afin de prévenir l’utilisateur que l’action a bien été effectuée. Comment compacter une base de données Access à partir d’une autre base de données ? Comme vous avez pu le voir avec la méthode précédente, la base de données Access ne se compacte que lorsqu’elle est fermée et lorsque l’utilisateur choisit d’activer ou non le compactage en cliquant sur le bouton adéquat. Par simplicité, il peut être préférable de lancer le compactage à partir d’une autre base de données lorsque cela est nécessaire. Création de la base de données Access, de son formulaire et de son bouton Créez une nouvelle base de données vide en cliquant sur Fichier > Nouveau > Base de données vide . Donnez un nom à la base de données, choisissez l’emplacement et cliquez sur Créer . Fermez la table qui est ouverte en cliquant sur la croix de l’onglet, puis créez un formulaire via le menu Créer > Création de formulaire . Dans le menu Conception de formulaires, cliquez sut le contrôle Bouton et cliquez sur le formulaire. Une nouvelle fois, si les Assistants Contrôles sont activés, l’assistant s’ouvre, fermez-le en cliquant sur le bouton Annuler. Paramétrez le bouton de la même manière que le tout premier bouton créé dans la base de données précédente :
  • 5. Votre Assistante : https://www.votreassistante.net - le 12/04/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 5 Écriture de la procédure pour compacter une autre base de données Access Toujours en gardant sélectionné le bouton, à l’onglet Évènement de la Feuille de propriétés , cliquez sur les 3 points à la fin de la ligne Au clic et sélectionnez le Générateur de code : une procédure nommée Compacter_Click apparaît dans la fenêtre VBA. Saisissez à l’intérieur : DBEngine.CompactDatabase "C:UsersLydiaDesktopMa base de données test.accdb", 1 "C:UsersLydiaDesktopBDD temporaire.accdb" 2 Kill "C:UsersLydiaDesktopMa base de données test.accdb" 3 Name "C:UsersLydiaDesktopBDD temporaire.accdb" As "C:UsersLydiaDesktopMa base 4 de données test.accdb" 5 MsgBox "La base de données est compactée.", vbInformation, "Succès" 6 La première et deuxième ligne permettent de créer une copie de la base de données et de la compacter. J’ai donc saisi le chemin complet de la base de données à compacter, puis le même chemin, mais pour une base de données nommée BDD temporaire que vous pouvez remplacer par un autre nom. Pour ne pas faire d’erreur dans le chemin, je vous conseille de faire un clic droit sur le fichier en maintenant la touche Maj enfoncée > Copier en tant que chemin d’accès. À la ligne 3, la base de données précédente est supprimée via l’instruction Kill. À la ligne 5, je renomme la base de données nommée BDD temporaire par le nom qu’elle avait au départ : Ma base de données test. Enfin, à la ligne 6, un message m’alerte que le compactage est terminé.
  • 6. Votre Assistante : https://www.votreassistante.net - le 12/04/2022 Article écrit par Lydia Provin du site Votre Assistante : https://www.votreassistante.net 6 Repassez en Mode Formulaire pour tester votre bouton. Si tout s’est bien passé, vous devriez obtenir ce message : Si un message d’erreur apparaît, assurez-vous, en premier lieu, que les chemins sont corrects. Présentation du nouvel utilitaire Access de Votre Assistante Si vous ne souhaitez pas faire appel à du code VBA pour compacter votre base de données, mais quand même le faire à partir d’un bouton sur un formulaire, découvrez le tout nouvel utilitaire Access que je viens de créer. Grâce à lui, vous pourrez compacter votre base de données, mais aussi exporter les tables au format Excel, les vider, utiliser votre base de données en réseau très facilement, lui appliquer un mot de passe et afficher le nombre d’objets qu’elle contient. Vous pourrez l’utiliser avec une base de données contenant ou non un mot de passe, mais aussi une base de données déjà en réseau. Profitez de son tarif de lancement sur cette page. Tutoriel réalisé avec Access Microsoft 365 Voir la version vidéo de cet article