Power QueryでデータベースへRに接続時の「DataSource.Error: OLE DB or ODBC error」を修正する

intermediate📊 Microsoft Excel2026-05-05| Microsoft Excel 2016/2019/2021/Microsoft 365、Power Query、Windows 10/11(32ビットおよび64ビット)

Error Message

DataSource.Error: OLE DB or ODBC error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
#power-query#odbc#ole-db#データソース#excel

TL;DR

Power QueryがODBCデータソースを見つけられません。このマシンにDSN(データソース名)が存在しない、ドライバーがインストールされていない、または32ビットと64ビットの不一致が原因です。コントロールパネルからODBCデータソースを開き、正しいアーキテクチャのDSNを確認して、見つからない場合は対応するドライバーをインストールしてください。

このエラーが発生する原因

Power Queryに表示される完全なエラーメッセージ:

DataSource.Error: OLE DB or ODBC error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.

Windows ODBCドライバーマネージャーが接続要求を受け取りましたが、一致するものが見つかりませんでした。一致するデータソースもドライバーも存在しない状態です。原因は主に3つ考えられます:

  • DSNがこのマシンに存在しない — 別の人が自分のマシンで設定したまま、あなたのマシンに複製していない。
  • ドライバーがインストールされていない — SQL Server、MySQL、Oracleなど、必要なドライバーがインストールされていない。
  • アーキテクチャの不一致 — 64ビットのExcelが64ビットのODBCレジストリを参照しているが、DSNは32ビット側に登録されている(またはその逆)。

修正方法1:DSNを確認・作成する

まず、正しいODBCマネージャーを開きます。使用しているExcelのバージョンによって異なります:

  • 64ビットExcel%SystemRoot%\System32\odbcad32.exeを実行するか、スタートメニューで*ODBCデータソース(64ビット)*を検索します。
  • 32ビットExcel:代わりに%SystemRoot%\SysWOW64\odbcad32.exeを実行します。

システムDSNタブを開きます。DSNが存在しない場合は、追加をクリックして作成し、ドライバー、サーバーアドレス、データベース名を入力してください。

重要: Power Queryでは必ずシステムDSNを使用してください。ユーザーDSNは、サービスアカウントや別のWindowsユーザーがクエリを更新しようとした瞬間に機能しなくなります。月曜の朝に追いかけることになる厄介なバグです。

修正方法2:不足しているODBCドライバーをインストールする

新しいデータソースの作成リストにドライバーが表示されない場合、答えは明確です — まずドライバーをインストールしてください。

  • SQL Server:Microsoft ODBC Driver 17 または 18 for SQL Server
  • MySQL:MySQL Connector/ODBC 8.0
  • PostgreSQL:psqlODBC
  • Oracle:Oracle Instant Client + ODBCドライバー

Excelと同じビット数のドライバーをインストールしてください — 64ビットExcelには64ビットドライバーが必要です。インストール後、ODBCデータソースを再度開き、DSNを作成する前にドライバーがリストに表示されていることを確認してください。

修正方法3:32ビット / 64ビットの不一致を解消する

これは多くの人がハマるポイントです。DSNは存在するのに、間違った場所に登録されているケースです。

WindowsはDSNを2つの別々のレジストリ場所に保存します:

  • 64ビットアプリ:HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
  • 32ビットアプリ:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI

Excelのバージョンを確認するには:ファイル → アカウント → Excelのバージョン情報。32ビットの場合、タイトルバーに*(32ビット)*と表示されます。64ビットは何も表示されません。

どちらを使用しているか確認したら、対応するODBCマネージャーを開いてDSNが存在するか確認します。間違ったマネージャーにしか登録されていない場合は、正しい方に再作成してください。作業時間は約2分です。

修正方法4:DSNなしの接続文字列に切り替える

長期的により良い解決策があります:DSNを完全に使わない方法です。Power QueryのMコードに直接接続文字列を埋め込みます。ワークブックが移植可能になり、各マシンでのDSN設定が不要になります。

// In Power Query Advanced Editor:
let
    Source = Odbc.DataSource(
        "Driver={ODBC Driver 17 for SQL Server};Server=myserver;Database=mydb;Trusted_Connection=yes;",
        [HierarchicalNavigation = true]
    )
in
    Source

特定のIPアドレスのMySQLの場合:

Odbc.DataSource(
    "Driver={MySQL ODBC 8.0 Unicode Driver};Server=192.168.1.10;Database=mydb;UID=user;PWD=password;"
)

OLE DB(Access、Excelファイル、またはOLE DB経由のSQL Server)の場合:

OleDb.DataSource(
    "Provider=SQLOLEDB;Data Source=myserver;Initial Catalog=mydb;Integrated Security=SSPI;"
)

ドライバーがマシンにインストールされていれば、これだけで動作します。DSNのレジストリエントリを管理する必要も、アーキテクチャの混乱もありません。

修正方法5:Power Queryの数式ファイアウォールを確認する

このエラーがDSNとは無関係に発生することがあります — Power Queryの数式ファイアウォールがクロスソースクエリをブロックしている場合です。ファイル → オプションと設定 → クエリのオプション → プライバシーに移動し、レベルをプライバシーレベルを無視するに設定してください。これは信頼できる内部環境のみで行ってください。その後クエリを更新して問題が解消されるか確認します。

修正の確認

  • ODBCデータソース(正しいビット数)を開き、システムDSNにDSNが存在することを確認します。
  • DSNを選択 → 構成テストをクリックします。接続に成功しましたと表示されるはずです。
  • Excelに戻り:データ → クエリと接続で、クエリを右クリック → 更新
  • DSNなしの接続文字列を使用している場合は、MコードをAdvanced Editorに貼り付けて完了をクリックします — プレビューペインにエラーなしでデータが表示されるはずです。

診断チェックリスト

  • ExcelのビットとODBCドライバーのビットが一致している? ✓
  • DSNがシステムDSN(ユーザーDSNではなく)に存在する? ✓
  • ドライバーがODBCドライバーリストに表示されている? ✓
  • ODBCマネージャーからのDSNテストが成功する? ✓
  • ファイアウォール/ネットワークがDBホストとポートへの接続を許可している(例:SQL Serverは1433、MySQLは3306)? ✓

参考資料

  • Microsoft Docs:Odbc.DataSource M関数リファレンス
  • Microsoft ODBC Driver for SQL Server — ダウンロードページ
  • Power Queryのプライバシーレベルと数式ファイアウォールの解説

Related Error Notes