Pythonで、Accessにアクセスする

了解!では pyodbc を使って Access データベース(.accdb または .mdb)にアクセスする手順を、ステップバイステップで解説します。


目次

🔧 1. pyodbc のインストール

まず、ターミナル(またはコマンドプロンプト)で以下を実行して pyodbc をインストールします:

pip install pyodbc

📦 2. Access ODBCドライバの確認(Windows)

Microsoft Access Driver (*.mdb, *.accdb) がインストールされている必要があります。

ドライバ確認コマンド:

import pyodbc
print(pyodbc.drivers())

出力例に以下のようなものが含まれていればOKです:

['Microsoft Access Driver (*.mdb, *.accdb)', ...]

🧪 3. サンプルコード(.accdbに接続してテーブルを読み込む)

import pyodbc

# Access データベースファイルのパス
db_file = r"C:\path\to\your\database.accdb"

# 接続文字列
conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    rf'DBQ={db_file};'
)

# 接続
conn = pyodbc.connect(conn_str)
cursor = conn.cursor()

# テーブル名を取得
table_names = [row.table_name for row in cursor.tables(tableType='TABLE')]
print("テーブル一覧:", table_names)

# 例:最初のテーブルの中身を取得
if table_names:
    cursor.execute(f"SELECT * FROM {table_names[0]}")
    for row in cursor.fetchall():
        print(row)

# 後処理
cursor.close()
conn.close()

📝 注意点

  • パスのバックスラッシュ(\\)は r"..." で raw 文字列にすると楽です。
  • テーブル名にスペースがある場合は、[Table Name] というように [] で囲ってください。

必要があれば、以下の操作もすぐ対応できます:

  • データの書き込み(INSERT/UPDATE)
  • SQL実行時のエラー処理
  • pandasでDataFrameとして読み込む
  • テーブルの構造(カラム情報)を取得する

なにかやりたいことがあれば教えてね!

よかったらシェアしてね!
目次