Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

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

Ancien nº de publication de cet article : F306287
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
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.


Retour au début

Conditions requises

  • Microsoft Visual Basic .NET
  • Bibliothèque Microsoft Jet and Replication Objects 2.1, 2.5 ou 2.6
Retour au début

É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 SubEnd 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".
Retour au début

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.

Retour au début
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
Retour au début
Propriétés

ID d'article : 306287 - Dernière mise à jour : 12/06/2015 04:56:55 - Révision : 3.3

Microsoft Visual Basic .NET 2002 Initiation

  • kbnosurvey kbarchive kbhowto kbhowtomaster KB306287
Commentaires