Microsoft Access データベースへの接続(FireDAC)

提供: RAD Studio
移動先: 案内検索

データベース接続(FireDAC) への移動

このトピックでは、Microsoft Access データベース ファイルへの接続方法を説明します。

サポート対象バージョン

FireDAC ネイティブ ドライバでは Microsoft Access 95、97、2000、2003、2007、2010 のデータベースをサポートしています。

Windows 版クライアント ソフトウェア

FireDAC を使用するには、以下の Microsoft Access x86 または x64 ODBC ドライバのいずれかがワークステーションにインストールされている必要があります。

  • "Microsoft Access ドライバ(*.mdb)" x86 ODBC ドライバ バージョン 3 以降(よく Microsoft JET ODBC ドライバと呼ばれます)。95 ~ 2003 データベースの場合。詳細については、ここを参照してください。また、英語以外の言語用に用意されている代替ドライバのいずれかを使用することもできます。
  • "Microsoft Access ドライバ(*.mdb、*.accdb)" x86 および x64 ODBC ドライバ バージョン 12 以降。95 ~ 2010 データベースの場合。詳細については、ここを参照してください。

メモ: 別のアーキテクチャのランタイムが既にインストールされているワークステーションに x86 または x64 Microsoft Access ランタイムをインストールするには、ランタイム インストーラのコマンド ラインで "/passive" を指定します。Delphi IDE は x86 アプリケーションであるため、x86 版の Access を開発用ワークステーションにインストールしなければなりません。

Microsoft Access ODBC ドライバが正しくインストールされていない場合は、接続を試みたときに以下の例外が発生します。

[FireDAC][Phys][ODBC][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.(データソース名が見つからないか、デフォルトのドライバが指定されていません。)

新しいバージョンの Access で作成したデータベースを古い Access ドライバを使って開こうとした場合は、以下の例外が発生します。

[FireDAC][Phys][ODBC][Microsoft][ODBC Microsoft Access Driver] Cannot open database '(unknown)'. It may not be a database that your application recognizes, or the file may be corrupt.(データベース '(<不明なデータベース>)' を開くことができませんでした。アプリケーションが認識するデータベースではない、あるいはファイルが破損している可能性があります。)

macOS および iOS のクライアント ソフトウェア

FireDAC は、Linux、 macOS、iOS での Microsoft Access データベース接続をサポートしていません。

ドライバのリンク

ドライバをリンクするには、以下のいずれかを行います。

接続定義パラメータ

Microsoft Access データベースに接続するには、ほとんどのアプリケーションの場合、DriverIDDatabase を指定する必要があります(詳細は「接続の定義(FireDAC)」を参照)。

メモ: FireDAC では、パスワードで保護されたデータベースをサポートしていますが、パスワードの長さは 14 文字以下でなければなりません。アプリケーションでそれより長いパスワードを使用すると、"Not a valid password"(パスワードが無効です)という例外が発生します。

DriverID=MSAcc

パラメータ 説明 値の例
Database

MDB ファイルのパスです。 パスにはパス変数を含めることができます。

c:\mydb.mdb
SystemDB

システム データベース ファイルのパスです。 パスにはパス変数を含めることができます。

c:\mysystem.mdb
ReadOnly True に指定すると、データベースを読み取り専用モードで開くことができます。デフォルト値は False です。 True
StringFormat

文字列値を表す方式を次のいずれかとして定義します。

  • Choose -- Unicode 未対応の Delphi(D2007 およびそれ以前)では ftString/ftMemo として表し、Unicode 対応の Delphi(D2009 以降)では ftWideString/ftWideMemo として表します(これがデフォルトです)。
  • Unicode -- 常に ftWideString/ftWideMemo として表します。
  • ANSI -- 常に ftString/ftMemo として表します。
Unicode
ODBCAdvanced その他の任意の ODBC 接続パラメータ値を追加で指定することができます。デフォルト値は "ExtendedAnsiSQL=1" です。 IMPLICITCOMMITSYNC=NO

使用例

  • Microsoft Access データベースを開く場合:


DriverID=MSAcc
Database=c:\mydata.mdb
  • システム データベースを使って Microsoft Access データベースを開く場合:


DriverID=MSAcc
Database=c:\mydata.mdb
SystemDB=c:\system.mdb
User_Name=usr
Password=pwd
  • Microsoft Access のパスワード保護データベースを開く場合。パスワードの長さは 14 文字以下でなければならないことに注意してください。


DriverID=MSAcc
Database=c:\mydata.mdb
Password=pwd

メモ: データベースの削除/作成、暗号化、圧縮、修復を行う場合は、TADMSAccessUtility コンポーネントを使用します。

関連項目

サンプル