現象
Microsoft SQL Server 2012 データベースからMicrosoft Excel 2013 ブックにデータをインポートしようとする次のシナリオを考えてみましょう。
- データ接続ウィザードを起動して、SQL Server データベースからブックへの接続を作成します。
- データベースから複数のテーブルを選択します。
- ブック内のインポートされたデータを表示する方法を選択します。 たとえば、テーブル、ピボットテーブル レポート、ピボットグラフ レポートを作成することを選択します。
このとき、次のエラー メッセージが表示されます。
データ モデルからデータを取得できませんでした。 次のエラーが発生しました。Index は配列の範囲外でした。
原因
この問題は、選択したテーブル名のいずれかが、データベース内のスキーマ名と一致する文字列で終わる場合に発生します。 データ接続ウィザードでは、複数のテーブルからデータをインポートするときに、完全修飾テーブル名の代わりにテーブル名のみが使用されます。
注 この問題は、データ接続ウィザードを使用して 1 つのテーブルからデータをインポートする場合には発生しません。 このような場合、データ接続ウィザードでは完全修飾テーブル名が使用されます。
回避策
この問題を回避するには、以下のいずれかの方法を使用します。
- データ接続ウィザードを使用して、一度に 1 つのテーブルからデータをインポートします。
- テーブル名の末尾にスキーマ名と一致する文字列がないことを確認し、複数のテーブルからデータをインポートします。
- 「現象」セクションに記載されているエラー メッセージが表示されたら、次の手順に従って複数のテーブルからデータをインポートします。
- [データのインポート] ダイアログ ボックスで [ プロパティ ] をクリックします。
- Click the Definition tab.
- [コマンド テキスト] ボックスで、Database.Schema.TableName という形式を使用して、テーブル名を完全修飾テーブル名に変更します。