【SQL Server 2012】SQLでエクセル表示の実行エラーの対処法
SQLでエクセル表示を実行した時にエラーとなった場合の対処法。
実はSQLでエクセルファイルを表示するにあたり、色々なエラーに遭遇しました。ということで、対処方法を記録しておきたいと思います。
■エラーその1
SQL Server 2012をインストールしただけの状態で、ManagementStudioでSQLを実行した時に出力したエラー
SQL Server によって、コンポーネント ‘Ad Hoc Distributed Queries’ の STATEMENT ‘OpenRowset/OpenDatasource’ に対するアクセスがブロックされました。このサーバーのセキュリティ構成で、このコンポーネントが OFF に設定されているためです。システム管理者は sp_configure を使用して、’Ad Hoc Distributed Queries’ の使用を有効にできます。’Ad Hoc Distributed Queries’ を有効にする手順の詳細については、SQL Server オンライン ブックで、’Ad Hoc Distributed Queries’ を検索してください。 |
(1)色々調べた結果、まずは ↓ のSQLを実行しました。
sp_configure ‘show advanced options’, 1; GO RECONFIGURE; GO sp_configure ‘fill factor’, 100; GO RECONFIGURE; GO |
■エラーその2
上記のSQLを実行後、再度、エクセルファイル表示のSQLを実行した時のエラー
OLE DB プロバイダー “Microsoft.ACE.OLEDB.12.0” が登録されていません。 |
(2)調べてみると 【Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント】 なるものが必要らしく、ダウンロードしてサーバーへインストール。 http://www.microsoft.com/ja-jp/download/details.aspx?id=13255
■エラーその3
上記をインストールした後に出力したエラー
SQL Server によって、コンポーネント ‘Ad Hoc Distributed Queries’ の STATEMENT ‘OpenRowset/OpenDatasource’ に対するアクセスがブロックされました。このサーバーのセキュリティ構成で、このコンポーネントが OFF に設定されているためです。システム管理者は sp_configure を使用して、’Ad Hoc Distributed Queries’ の使用を有効にできます。’Ad Hoc Distributed Queries’ を有効にする手順の詳細については、SQL Server オンライン ブックで、’Ad Hoc Distributed Queries’ を検索してください。 |
(3)アドホックが有効でないといわれたので ↓ のSQLを実行
–アドホッククエリ有効化(OPENROWSETを実行可能にする) EXEC sp_configure ‘Ad Hoc Distributed Queries’, 1; RECONFIGURE; |
■エラーその4
アドホッククエリを有効にした後に出力したエラー
メッセージ 7399、レベル 16、状態 1、行 1 リンク サーバー “(null)” の OLE DB プロバイダー “Microsoft.ACE.OLEDB.12.0” により、エラーがレポートされました。アクセスが拒否されました。 メッセージ 7350、レベル 16、状態 2、行 1 リンク サーバー “(null)” の OLE DB プロバイダー “Microsoft.ACE.OLEDB.12.0” から列情報を取得できません。 |
(4)アクセス拒否とかされたので、調べて ↓ のSQLを実行
USE master EXEC sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′ , N’AllowInProcess’ , 1 EXEC sp_MSset_oledb_prop N’Microsoft.ACE.OLEDB.12.0′ , N’DynamicParameters’ , 1 |
上記、4つのエラーを乗り越えようやく、表示することができました。
Adsense
関連記事
-
【レプリケーション】SQL Server 2012 Expressでレプリケーション
Windows Server 2012のSQL Server 2012 Expressを二台用意して
-
【SQL Server 2012】バッチ(コマンドプロンプト)でバックアップ
バッチ(コマンドプロンプト)を使って、SQL Server 2012のバックアップを取得します。
-
【SQL Server】Excel VBAのレコードセットを使ってテーブルの一括更新
前々回は読み取り専用でレコードセットへ取得し、結果をエクセルへ書き出し 前回はVBAから更新S
-
【SQL Server 2012 Express】Windows Server 2012にインストールしてみる
Windows Server 2012にSQL Server 2012をインストールしてみる。 以
-
【SQLServer2012】バックアップ/リストア方法 リストア編
SQL Server 2012のデータベースをManagement Studioを使用して、リストア
-
【コマンドプロンプト】完成版!cmdでSQLの結果を変数に取得
以前、 【コマンドプロンプト】cmdでSQLの結果を変数に取得する方法 を書きましたが、
-
【SQL Server 2012】Management Studioでサンプルデータベース(mdfファイル)をアタッチ
以前、Windows Server 2012にMicrosoftR SQL ServerR 2012
-
【SQL Server】Management Studioを使ったトランザクションログファイルの圧縮
「ファイルが書き出せない」と問い合わせを受け、DBサーバーのマイコンピュータ確認したら、Dドライブ(
-
【SQL Server 2012】テーブル、カラム、主キー、NULL制約、データ型、長さ、INDEXの有無の一括表示
職場のシステムリプレースに伴い、データベースのテーブル(カラム)の一覧が必要になりました。 普
-
【SQL Server】アンインストール手順
手順としては、http://technet.microsoft.com/ja-jp/library/