COMMENT FAIRE : Compacter une base de données Microsoft Access à l'aide de Visual Basic .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 306287 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F306287
Agrandir tout | Réduire tout

Sommaire

Résumé

Ni ActiveX Data Objects (ADO), ni ADO .NET n'offrent les moyens de compacter ou de réparer les bases de données Microsoft Access. Vous pouvez cependant utiliser le fournisseur Microsoft Jet OLE DB et JRO (Jet and Replication Objects), introduit avec Microsoft Data Access Components (MDAC) version 2.1. ADO.NET permet d'utiliser les bibliothèques d'objets COM (Component Object Model) grâce à la couche Interop.

Cet article explique comment compacter une base de données Access à l'aide de Visual Basic .NET.


Conditions requises

  • Microsoft Visual Basic .NET
  • Bibliothèque Microsoft Jet and Replication Objects 2.1, 2.5 ou 2.6

Étapes de création de l'exemple

  1. Ouverture d'une nouvelle application de console Visual Basic .NET.
  2. Dans la fenêtre Explorateur de solutions, cliquez avec le bouton droit sur le n?ud Références, puis sélectionnez Ajouter une référence.
  3. Dans la boîte de dialogue Ajouter une référence, cliquez sur l'onglet COM, puis sélectionnez Microsoft Jet and Replication Objects 2.1 Library. Cliquez sur Sélectionner pour l'ajouter à la liste Composants sélectionnés. Cliquez sur OK.
  4. Un avertissement s'affiche si aucun wrapper ne figure dans la bibliothèque sélectionnée. Cliquez sur Oui pour générer un wrapper. La bibliothèque Microsoft ActiveX Data Objects (ADODB) et les références JRO s'ajoutent aux références du projet.
  5. Dans la fenêtre de l'Explorateur de solutions, cliquez avec le bouton droit sur Module1.vb, puis cliquez sur Afficher le code.
  6. Supprimez tout le code de la fenêtre.
  7. Copiez le code suivant et collez-le dans la fenêtre de code :
    Module Module1
    
        Sub Main()
    
            Dim jro As JRO.JetEngine
    
            jro = New JRO.JetEngine()
    
            jro.CompactDatabase("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\nwind.mdb", _
            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\NewNwind.mdb;Jet OLEDB:Engine Type=5")
    
            MsgBox("Fin du compactage de la base de données !")
        End Sub
    
    End Module
  8. Modifiez le chemin d'accès aux fichiers .mdb source et de destination selon vos besoins. Appuyez sur F5 pour générer et exécuter le projet.

    La base de données ainsi compactée est au format Access 2000 (Jet 4.0). Pour les autres formats Jet, consultez la section "Références".

Pièges

Pour compacter une base de données, le moteur de base de données Microsoft Jet a besoin d'un accès exclusif au fichier de base de données. Si vous tentez de compacter un fichier de base de données en cours d'utilisation, une exception se produit. Pour la détecter, vous pouvez utiliser une structure Try...Catch.

Références

Pour plus d'informations sur le Framework .NET et la couche Interop de COM, consultez la page Web suivante :
Exposition des composants COM dans le Framework .NET (en anglais)
http://msdn2.microsoft.com/en-us/library/z6tx9dw3(vs.71).aspx
Pour plus d'informations sur l'utilisation des objets ADO et JRO pour le compactage des bases de données Access, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
230501 PROCÉDURE : Compacter une base de données Microsoft Access via ADO

Propriétés

Numéro d'article: 306287 - Dernière mise à jour: lundi 21 mai 2007 - Version: 3.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic .NET 2002 Initiation
Mots-clés : 
kbhowto kbhowtomaster KB306287
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com