Error "El índice estaba fuera de los límites de la matriz" al importar datos de varias tablas de una base de datos de SQL Server a un libro de Excel 2013

Síntomas

Tenga en cuenta el siguiente escenario en el que intenta importar datos de una base de datos de Microsoft SQL Server 2012 a un libro de Microsoft Excel 2013:

  • Inicie el Asistente para conexión de datos para crear una conexión desde la base de datos SQL Server al libro.
  • Seleccione varias tablas de la base de datos.
  • Seleccione cómo desea ver los datos importados en el libro. Por ejemplo, seleccione crear una tabla, un informe de tabla dinámica o un informe de gráfico dinámico.

En esta situación, aparece este mensaje de error:

No se pudieron obtener datos del modelo de datos. Este es el error que se ha producido: El índice estaba fuera de los límites de la matriz.

Causa

Este problema se produce cuando uno de los nombres de tabla seleccionados termina con una cadena que coincide con un nombre de esquema en la base de datos. El Asistente para conexión de datos solo usa los nombres de tabla en lugar de los nombres de tabla completos al importar datos de varias tablas.

Nota Este problema no se produce cuando se usa el Asistente para conexiones de datos para importar datos de una sola tabla. En esta situación, el Asistente para conexión de datos usa el nombre completo de la tabla.

Solución alternativa

Para resolver este problema, use uno de los métodos siguientes:

  • Use el Asistente para conexión de datos para importar datos de una tabla a la vez.
  • Asegúrese de que ninguno de los nombres de tabla termine con una cadena que coincida con un nombre de esquema y, a continuación, importe datos de varias tablas.
  • Después de recibir el mensaje de error que se menciona en la sección "Síntomas", siga estos pasos para importar datos de varias tablas:
    1. Haga clic en Propiedades en el cuadro de diálogo Importar datos.
    2. Haga clic en la pestaña Definición.
    3. En el cuadro Texto de comando, cambie los nombres de tabla a nombres de tabla completos con el siguiente formato: Database.Schema.TableName.