Partager via


Erreur « L’index était en dehors des limites du tableau » lorsque vous importez des données de plusieurs tables d’une base de données SQL Server dans un classeur Excel 2013

Symptômes

Considérez le scénario suivant dans lequel vous essayez d’importer des données d’une base de données Microsoft SQL Server 2012 vers un classeur Microsoft Excel 2013 :

  • Vous démarrez l’Assistant Connexion de données pour créer une connexion à partir de la base de données SQL Server au classeur.
  • Vous sélectionnez plusieurs tables dans la base de données.
  • Vous sélectionnez la façon dont vous souhaitez afficher les données importées dans le classeur. Par exemple, vous choisissez de créer un tableau, un rapport de tableau croisé dynamique ou un rapport de graphique croisé dynamique.

Dans ce scénario, le message d’erreur suivant s’affiche :

Nous n’avons pas pu obtenir de données à partir du modèle de données. Voici l’erreur que nous avons obtenue : Index était en dehors des limites du tableau.

Cause

Ce problème se produit quand l’un des noms de table sélectionnés se termine par une chaîne qui correspond à un nom de schéma dans la base de données. L’Assistant Connexion de données utilise uniquement les noms de table au lieu des noms de table complets lorsque vous importez des données à partir de plusieurs tables.

Remarque Ce problème ne se produit pas lorsque vous utilisez l’Assistant Connexion de données pour importer des données à partir d’une table unique. Dans ce cas, l’Assistant Connexion de données utilise le nom complet de la table.

Solution de contournement

Pour contourner ce problème, appliquez l’une des méthodes suivantes :

  • Utilisez l’Assistant Connexion de données pour importer des données d’une table à la fois.
  • Assurez-vous qu’aucun de vos noms de table ne se termine par une chaîne qui correspond à un nom de schéma, puis importez les données de plusieurs tables.
  • Après avoir reçu le message d’erreur mentionné dans la section « Symptômes », procédez comme suit pour importer des données à partir de plusieurs tables :
    1. Cliquez sur Propriétés dans la boîte de dialogue Importer des données.
    2. Cliquez sur l’onglet Définition.
    3. Dans la zone Texte de la commande, remplacez les noms de table par des noms de table complets en utilisant le format suivant : Database.Schema.TableName