Ralentissement des performances sur des tables liées dans Access 2002, Office Access 2003 et Office 2007

Traductions disponibles Traductions disponibles
Numéro d'article: 275085 - Voir les produits auxquels s'applique cet article
Pour une Microsoft Access 2000 version de cet article, reportez-vous 261000.
Novice : Nécessite une connaissance de l'interface utilisateur sur les ordinateurs mono-utilisateur.

Cet article s'applique uniquement à une base de données Microsoft Access (.mdb).

Agrandir tout | Réduire tout

Symptômes

Lorsque vous ouvrez une table attachée dans Access 2002, dans Microsoft Office Access 2003. ou dans Microsoft Office Access 2007 qui peuvent afficher des enregistrements connexes dans une sous-feuille de données, le processus est sensiblement plus long que si vous utilisez la même base de données dans Microsoft Access 97.

Cause

Ce comportement se produit s'il existe de nombreuses tables liées dans une base de données qui contient également de nombreuses relations et la table que vous ouvrez son Nom de la sous-feuille de données propriété a la valeur [auto].

Résolution

Pour contourner ce problème, affectez à propriété de Nom de la sous-feuille de données de la table [Aucun]. Vous pouvez le faire manuellement ou à l'aide de code.

Définition de la propriété Name de la sous-feuille de données manuellement

Pour définir la propriété Name de la sous-feuille de données manuellement, procédez comme suit.

RemarqueCette procédure fonctionne uniquement dans Access 2002.
  1. Dans la base de données back-end, ouvrez une table en mode Création.
  2. Dans le menu affichage, cliquez sur Propriétés.
  3. Définir la propriété Name de la sous-feuille de données[None].
  4. Enregistrez et fermez la table.

Définition de la propriété Name de sous-feuille de données pour toutes les tables à l'aide de code

Une fonction Visual Basic pour applications permet de définir automatiquement la propriété Name de sous-feuille de données pour toutes les tables non système dans une base de données [None]. Pour ce faire, procédez comme suit :
  1. Ouvrez la base de données back-end.
  2. Dans la fenêtre base de données, cliquez sur modules, puis cliquez sur Nouveau.
  3. Dans le menu Outils, cliquez sur références. Assurez-vous que le Microsoft DAO 3.6 Object Library case à cocher est activée et cliquez sur OK.
  4. Tapez ou collez le code suivant dans le nouveau module.
    Sub TurnOffSubDataSheets()
    Dim MyDB As DAO.Database
    Dim MyProperty As DAO.Property
    Dim propName As String, propVal As String, rplpropValue As String
    Dim propType As Integer, i As Integer
    Dim intCount As Integer
    
    On Error GoTo tagError
    
    Set MyDB = CurrentDb
    propName = "SubDataSheetName"
    propType = 10
    propVal = "[None]"
    rplpropValue = "[Auto]"
    intCount = 0
    
    For i = 0 To MyDB.TableDefs.Count - 1
        If (MyDB.TableDefs(i).Attributes And dbSystemObject) = 0 Then
            If MyDB.TableDefs(i).Properties(propName).Value = rplpropValue Then
                 MyDB.TableDefs(i).Properties(propName).Value = propVal
                 intCount = intCount + 1
            End If
        End If
    tagFromErrorHandling:
    Next i
    
    MyDB.Close
    
    If intCount > 0 Then
        MsgBox "The " & propName & " value for " & intCount & " non-system tables has been updated to " & propVal & "."
    End If
    
    Exit Sub
    
    tagError:
    If Err.Number = 3270 Then
        Set MyProperty = MyDB.TableDefs(i).CreateProperty(propName)
        MyProperty.Type = propType
        MyProperty.Value = propVal
        MyDB.TableDefs(i).Properties.Append MyProperty
        intCount = intCount + 1
        Resume tagFromErrorHandling
    Else
        MsgBox Err.Description & vbCrLf & vbCrLf & " in TurnOffSubDataSheets routine."
    End If
    End Sub
    
  5. Dans la fenêtre exécution, tapez le texte suivant, puis appuyez sur ENTRÉE pour exécuter la fonction : Note
    TurnOffSubDataSheets
    						
    qu'après un bref moment, si toutes les tables ne sont pas déjà mis à jour, vous affiche une boîte de message vous indiquant que la propriété SubDataSheetName pour <numberoftablesupdated>non-système tables a été mis à jour pour[NONE].

Plus d'informations

Office Access 2007, Access 2003, Access 2002 et Access 2000 permettent d'afficher les enregistrements connexes d'une table dans une sous-feuille de données ; cette fonctionnalité n'est pas disponible dans Access 97. Pour gérer les relations entre les tables principales et connexes, le système requiert une charge supplémentaire peut augmenter les temps de réponse, en particulier lorsqu'une base de données est un grand nombre de tables liées et un grand nombre de relations entre tables.

La table principale dans une relation un-à-plusieurs (table située du côté «un» de l'équation) peut avoir sa propriété de Nom de la sous-feuille de données définie sur [Aucun], auquel cas les sous-feuilles de données ne sont pas affichés. Ou sa propriété Name de la sous-feuille de données peut être définie sur le nom d'une table liée particulière ou sur [auto]. Si la propriété a la valeur [auto], vous pouvez sélectionnez la table dont vous souhaitez voir lorsque vous cliquez sur l'indicateur de développer d'un enregistrement dans le tableau principal les enregistrements connexe. Lorsque vous définissez la propriété [auto], elle peut réduire les performances sensiblement, en particulier sur les ordinateurs plus anciens, lorsque la base de données utilise un grand nombre de tables liées. Ce problème ne se produit lorsque toutes les tables sont présentes dans la même base de données.

Étant donné que le problème est ralentissement des performances, facteurs, tels que la vitesse du processeur et de ressources système disponibles peuvent entraîner une base de données qui exécute correctement sur un ordinateur pour pouvoir exécuter lentement sur un autre ordinateur.

Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie expresse ou implicite. Cela inclut, mais n'est pas limité à, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du support technique Microsoft peuvent vous aider à comprendre la fonctionnalité d'une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.

Propriétés

Numéro d'article: 275085 - Dernière mise à jour: jeudi 29 mars 2007 - Version: 10.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002
Mots-clés : 
kbmt kbbug kbperformance kbnofix KB275085 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 275085
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