SQL Server データベースのインポートまたは SQL Server データベースへのリンク

SQL Server データベースのインポートまたは SQL Server データベースへのリンク

ミッション クリティカルなアプリケーションに使用される高性能な管理データベースである SQL データベースにデータをリンクさせたり、SQL データベースからデータをインポートしたりすることができます。詳細については、「SQL Server 2016」を参照してください。

  • データにリンクする場合、Access は、Access と SQL データベースのデータに対する変更を同期する双方向接続を作成します。

  • データをインポートする場合、Access は 1 回限りのデータのコピーを作成するため、Access または SQL データベースのいずれかのデータに対する変更は同期されません。

Access と SQL Server の接続の概要

はじめに

円滑に進めるため、リンクまたはインポートする前に以下の準備を行います。

  • SQL Server データベースのサーバー名を見つけて、必要な接続情報を特定し、認証方法 (Windows または SQL Server) を選択します。認証方法の詳細については、「サーバーへの接続 (データベース エンジン)」および「SQL Database の保護」を参照してください。

  • リンクまたはインポートするテーブルまたはビュー、およびリンクされたテーブルの一意の値のフィールドを特定します。一度の操作で複数のテーブルまたはビューをリンクまたはインポートすることができます。

  • 各テーブルまたは各ビューの列数を考慮します。Access は 1 テーブルにつき 255 を超えるフィールドをサポートしていないため、Access は最初の 255 列のみをリンクまたはインポートします。この問題を回避するため、SQL Server データベースに、制限を超える列にアクセスするビューを作成することができます。

  • インポートするデータの総量を決定します。Access データベースの最大サイズは、2 GB からシステム オブジェクトに必要な領域を引いた大きさです。SQL Server データベースに大きなテーブルが含まれている場合、すべてを 1 つの Access データベースにインポートすることはできません。この場合、インポートする代わりにデータへリンクすることを検討してください。

  • 信頼できる場所と Access データベース パスワードを使用して、Access データベースとそれに含まれる接続情報を保護します。これは、Access に SQL Server のパスワードを保存する場合に特に重要です。

  • 追加のリレーションシップを作成することを計画します。Access では、インポート操作の最後に、関連するテーブル間のリレーションシップが自動的に作成されません。[リレーションシップ] ウィンドウを使用すると、新しいテーブルと既存のテーブル間のリレーションシップを手動で作成することができます。詳細については、「リレーションシップ ウィンドウとは」と「リレーションシップを作成、編集、または削除する」を参照してください。

ステージ 1:はじめに

  1. [外部データ]、[新しいデータ ソース]、[データベースから]、[SQL Server から] の順に選択します。

  2. [外部データの取り込み - ODBC データベース] ダイアログ ボックスで、次のいずれかの操作を行います。

    • データをインポートするには、[現在のデータベースの新しいテーブルにソース データをインポートする] を選択します。

    • データをリンクするには、[リンク テーブルを作成してソース データにリンクする] をクリックします。

  3. [OK] をクリックします。

ステージ 2:DSN ファイルを作成または再利用する

DSN ファイルを作成したり、既存の DSN ファイルを再利用したりできます。異なるリンクおよびインポート操作で同じ接続情報を使用する場合、または DNS ファイルを使用する異なるアプリケーションと共有する場合は、DNS ファイルを使用します。データ接続マネージャーを使用して直接 DSN ファイルを作成することができます。詳細については、「ODBC データ ソースを管理する」を参照してください。

以前のバージョンの SQL ODBC ドライバーは引き続き使用できますが、多数の改善が加えられていますので、新しい SQL Server 2016 の機能をサポートしているバージョン 13.1 を使用することをお勧めします。詳細については、「Windows 上の Microsoft ODBC Driver for SQL Server」を参照してください。

  1. 次のいずれかの操作を行います。

    • 使用する DSN ファイルが既に存在する場合は、リストから選びます。

      [データ ソースの選択] ダイアログ ボックス

      接続情報に入力した認証方法に応じて、再度パスワードを入力する必要がある場合があります。

    • 新しい DNS ファイルを作成するには:

      1. [新規作成] を選びます。

        [新しいデータ ソースの作成] ダイアログ ボックス
      2. [ODBC Driver 13 for SQL Server] を選択し、[次へ] を選択します。

      3. DSN ファイルの名前を入力するか、[参照] をクリックして別の場所にファイルを作成します。

  2. [次へ] をクリックし、サマリー情報を確認して、[完了] をクリックします。

ステージ 3:[SQL Server に接続するための新規データ ソースを作成する] を使用する

[SQL Server に接続するための新規データ ソースを作成する] ウィザードで、次の操作します。

  1. 1 ページ目で、識別情報を入力します。

    • 必要に応じて、[説明] ボックスに、DSN ファイルに関するドキュメント情報を入力します。

    • [サーバー] ボックスに、SQL Server データベースの名前を入力します。下矢印はクリックしないでください。

  2. 2 ページ目では、以下の認証方法のいずれかを選択します。

    • 統合 Windows 認証を使用する場合    Windows ユーザー アカウント経由で接続します。必要に応じて、サービス プリンシパル名 (SPN) を入力します。詳細については、「クライアント接続 (ODBC) におけるサービス プリンシパル名 (SPN)」を参照してください。

    • SQL Server 認証を使用する場合    [ログイン ID] と [パスワード] を入力して、データベースで設定した資格情報で接続します。

  3. 3 ページ目と 4 ページ目では、接続をカスタマイズするためのさまざまなオプションを選択します。これらのオプションの詳細については、「Microsoft ODBC Driver for SQL Server」を参照してください。

  4. 設定を確認する画面が表示されます。[データ ソースのテスト] を選択し、接続を確認します。

  5. データベースにログインする必要がある場合があります。[SQL Server ログイン] ダイアログ ボックスに、[ログイン ID] と [パスワード] を入力します。その他の設定を変更するには、[オプション] を選択します。

ステージ 4:リンクまたはインポートするテーブルを選択する

  1. [テーブルのリンク] または [オブジェクトのインポート] ダイアログ ボックスの [テーブル] で、リンクまたはインポートする各テーブルまたはビューを選択し、[OK] をクリックします。

    リンクまたはインポートするテーブルのリスト
  2. リンク操作で、[パスワードを保存] を選択するかどうかを決定します。

    セキュリティ    このオプションを選択すると、Access を開いてデータにアクセスするたびに資格情報を入力する必要がなくなります。しかし、これは暗号化されていないパスワードを Access データベースに保存します。これは、ソース コンテンツにアクセスできるユーザーがユーザー名とパスワードを表示できることを意味しています。このオプションを選択する場合、信頼できる場所に Access データベースを保存し、Access データベース パスワードを作成することを強くお勧めします。詳細については、「データベースを信頼するかどうか決定する」と「データベース パスワードを使用してデータベースを暗号化する」を参照してください。

ステージ 5:定義およびタスクを作成する (インポートのみ)

結果

リンクまたはインポート操作が完了すると、SQL Server テーブルまたはビューと同じ名前でテーブル名が所有者名と結合されて [ナビゲーション] ウィンドウに表示されます。たとえば、SQL 名を dbo.Product とすると、Access 名は dbo_Product となります。この名前が既に使用されている場合、Access は新しいテーブル名に "1" を追加します。たとえば、dbo_Product1 です。dbo_Product1 が既に使用されている場合は、dbo_Product2 というように作成します。テーブル名をわかりやすい名前に変更することもできます。

インポート操作では、Access はデータベースのテーブルを上書きすることはありません。SQL Server データを既存のテーブルに直接追加することはできませんが、同じようなテーブルからデータをインポートした後は追加クエリ作成してデータを追加することができます。

リンク操作では、SQL Server テーブルで列が読み取り専用の場合、Access でも読み取り専用になります。

ヒント    接続文字列を表示するには、Access のナビゲーション ウィンドウのテーブルの上にマウス ポインターを置きます。

リンクされたテーブルのデザインを更新する

リンクされたテーブルでは、列を追加、削除、または変更したり、データ型を変更したりすることができません。デザインを変更する場合は、SQL Server データベースで行います。Access でデザイン変更を確認するには、リンクされたテーブルを更新します。

  1. [外部データ]、[リンク テーブル マネージャー] の順に選択します。

  2. 更新するリンクされた各テーブルを選択し、[OK] を選択して、[閉じる] を選択します。

データ型を比較する

Access のデータ型は、SQL Server のデータ型とは異なる名前で呼ばれます。たとえば、bit データ型の SQL Server 列は、Yes/No データ型で Access にインポートまたはリンクされます。次の表では、SQL Server と Access のデータ型を比較します。

SQL Server のデータ型

Access のデータ型

Access のフィールド サイズ

bigint

大きい数値

大きい数値データ型を使用する」を参照してください。

binary (フィールド サイズ)

バイナリ

SQL Server フィールド サイズと同じ

bit

Yes/No

char (フィールド サイズ)、フィールドサイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

char (フィールド サイズ)、フィールドサイズが 255 より大きい

メモ

datetime

日付/時刻

decimal (精度、小数点以下桁数)

数値

Decimal (Access の Precision および Scale プロパティは SQL Server の precision と scale に一致します)

float

数値

Double

image

OLE オブジェクト型

int

数値

Long Integer

money

通貨

nchar (フィールド サイズ)、フィールドサイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

nchar (フィールド サイズ)、フィールドサイズが 255 より大きい

メモ

ntext

メモ

numeric (精度、小数点以下桁数)

数値

Decimal (Access の Precision および Scale プロパティは SQL Server の precision と scale に一致します)

nvarchar (フィールド サイズ)、フィールドサイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

nvarchar (フィールド サイズ)、フィールドサイズが 255 より大きい

メモ

nvarchar(MAX)

メモ

real

数値

Single

smalldatetime

日付/時刻

smallint

数値

Integer

smallmoney

通貨

sql_variant

テキスト

255

text

メモ

timestamp

バイナリ

8

tinyint

数値

Byte

uniqueidentifier

数値

レプリケーション ID

varbinary

バイナリ

SQL Server フィールド サイズと同じ

varbinary (MAX)

OLE オブジェクト型

varchar (フィールド サイズ)、フィールドサイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

varchar (フィールド サイズ)、フィールドサイズが 255 より大きい

メモ

varchar(MAX)

メモ

xml

メモ

SQL Server に格納されているデータを使用するには、SQL Server にリンクするか、データを Access データベースにインポートします。データを他のユーザーと共有している場合は、リンクを選択することをお勧めします。データを一元管理して、最新データを表示したり、データを追加、編集したり、Access でクエリやレポートを実行したりできるためです。

注: この記事は Access アプリ (Access で設計しオンラインで公開する新しい種類のデータベース) には適用されません。 詳細については、「Access アプリを作成する」を参照してください。

手順 1: リンクの準備をする

  1. リンクする SQL Server データベースを探します。必要であれば、接続情報についてデータベース管理者にお問い合わせください。

  2. SQL データベース内のデータにリンクするテーブルおよびビューを特定します。一度に複数のオブジェクトにリンクできます。

次の考慮事項に従って、ソース データを確認します。

  • 1 つのテーブルで Access がサポートできるフィールドの数は最大 255 (列) であるため、リンク テーブルに追加されるのは、リンク対象オブジェクトの最初の 255 個のフィールドだけです。

  • SQL Server テーブルの読み取り専用列は、Access でも読み取り専用として扱われます。

  1. リンク テーブルを新しいデータベース内に作成するには、[ファイル]、[新規作成]、[空のデスクトップ データベース] の順にクリックします。リンク テーブルを既存の Access データベース内に作成するときは、データをデータベースに追加するために必要な権限を持っていることをご確認ください。

    注:  既存の Access データベース内に作成されるリンク テーブルは、ソース オブジェクト内のテーブルと同じ名前になります。このため、同じ名前の別のテーブルが既に存在している場合、新しいリンク テーブル名は Contacats1 のように "1" が追加されます  (Contacts1 も既に使われている場合は、Contacts2 が作成されます。以下同様に作成されます)。

手順 2: データにリンクする

SQL Server データベース内のテーブルやビューにリンクすると、ソース テーブルの構造とコンテンツを反映する新しいテーブル (リンク テーブルと呼ばれる) が作成されます。データは、SQL Server、Access のデータシート ビューまたはフォーム ビューから変更でき、変更は SQL と Access の両方に反映されます。列の削除や変更といった構造上の変更をリンク テーブルに加えるには、Access からではなく SQL から加える必要があります。

  1. 目的の Access データベースを開きます。

  2. [外部データ] タブの [ODBC データベース] をクリックします。

  3. [リンク テーブルを作成してソース データにリンクする]、[OK] をクリックし、ウィザードで示される手順に従います。[データ ソースの選択] ボックスで、使用する .dsn ファイルが既に存在する場合は、一覧でそのファイルをクリックします。

    新しい .dsn ファイルを作成するには、次の手順を実行します。

    [データ ソースの選択] ボックスで、[新規作成]、[SQL Server]、[次へ] の順にクリックします。

    1. .dsn ファイルの名前を入力して、[参照] をクリックします。

      注: .dsn ファイルを保存するには、フォルダーへの書き込み権限が必要です。

    2. [次へ] をクリックし、サマリー情報を確認して、[完了] をクリックします。

      [SQL Server に接続するための新規データ ソースを作成する] ウィザードの手順に従います。

  4. [OK] をクリックし、[テーブル] でリンクする各テーブル、ビューをクリックして、[OK] をクリックします。

[一意なレコード識別子の選択] が表示されている場合、ソース データの各行を一意に識別するフィールドを Access で特定できなかったことを意味します。それぞれの行の一意のフィールドまたはフィールドの組み合わせを選んでください。わからない場合は、SQL Server データベースの管理者にご確認ください。

リンク操作が完了すると、新しいリンク テーブルがナビゲーション ウィンドウに表示されます。

最新の SQL Server オブジェクト構造を適用する

リンク テーブルまたはソース テーブルを開くと、最新のデータが表示されます。ただし、構造上の変更が SQL Server オブジェクトに加えられた場合、これらの変更を表示するためにはリンク テーブルを更新してください。

  1. ナビゲーション ウィンドウでテーブルを右クリックし、ショートカット メニューの [リンク テーブル マネージャー] をクリックします。

  2. 更新する各リンク テーブルの横にあるチェック ボックスをオンにするか、[すべて選択] をクリックしてすべてのリンク テーブルを選択します。

  3. [OK]、[閉じる] をクリックします。

注: Access のデータ型と SQL Server のデータ型は異なるため、それぞれの行で最も適切なデータ型にリンクされます。割り当てられたデータは Access で確認できますが、変更はできません。

詳細については、「Access デスクトップ データベースを共有する方法」を参照してください。

ページの先頭へ

データの保存に Microsoft SQL Server を使用している部署またはワークグループでは、SQL Server データの一部を Access で操作することが必要になる場合があります。

SQL Server オブジェクト (テーブルまたはビュー) からデータを Access に取り込むには、インポートとリンクの 2 つの方法があります。2 つのプロセスの違いは次のとおりです。

  • データをインポートすると、Access で SQL ​​Server データのコピーが作成されます。それ以降、Access データベースのそのデータに対して行った変更は、SQL Server データベースには反映されません。同様に、それ以降に SQL Server のテーブルまたはビューに対して行った変更は、Access テーブルには反映されません。

  • SQL Server データにリンクした場合、ソース データに直接接続されるので、それ以降に Access のデータに対して行った変更は SQL Server のデータにも反映され、逆に SQL Server のデータに対して行った変更は Access のデータにも反映されます。

この記事では、SQL Server データを Access にインポートする方法および SQL Server データにリンクする方法について説明します。

インポートまたはリンクのどちらにするかを決める

インポートが適している状況

通常は、次の理由により、SQL Server データを Access データベースにインポートします。

  • SQL Server データベース内のデータが不要になったために、SQL Server のデータを Access データベースに完全に移動する場合。Access にデータをインポートした後は、SQL Server データベースからそのデータを削除できます。

  • 所属する部署またはワークグループで Access​​ を使用しているが、ときどき補足データについて SQL Server データベースを参照しなければならず、それを Access​​ データベースに結合したい場合。

SQL Server データをインポートすると Access データベースにデータのコピーがインポートされるので、インポート プロセス時には、コピー元のテーブルまたはビューを指定します。

リンクが適している状況

通常は、次の理由により、SQL Server データにリンクします。

  • SQL Server データベースと Access データベースの両方で最新情報を表示および編集できるようにソース データに直接接続する場合。

  • SQL Server データベースに大きなテーブルが多数含まれていて、すべてを 1 つの .accdb ファイルにインポートすることができない場合。Access データベースの最大サイズは、2 GB からシステム オブジェクトに必要な領域を引いた大きさです。

  • データのコピーを作成することなく、クエリを実行し、SQL Server からのデータに基づいてレポートを生成したい場合、SQL Server へのリンクを検討。

  • 所属する部署またはワークグループで、レポート作成やクエリには Access​​ を使用し、データ ストレージとしては SQL ​​Server を使用する場合。個々のチームは、SQL Server テーブルおよびビューを一元的なストレージとして作成できますが、このデータを集計しレポートを作成するためにデスクトップ プログラムに取り込むことがしばしば必要になります。この場合はリンクを設定するのが適切な選択です。SQL Server サイトと Access​​ データベースの両方のユーザーがデータの追加や更新を行い、常に最新のデータで作業できるからです。

  • ごく最近 SQL ​​Server を使用し始めた Access​​ ユーザーの場合。いくつかのデータベースを SQL Server に移行し、移行したデータベース内のほとんどのテーブルがリンク テーブルになっています。それ以降は、Access​​ テーブルを作成するのではなく、SQL ​​Server 内にテーブルとビューを作成し、Access​​ データベースからそれらにリンクします。

  • データは引き続き SQL Server に保存するが、クエリを実行したり、Access​​ でデザインしたレポートを印刷したりするために、Access​​ でも最新のデータを使用したい場合。

ページの先頭へ

SQL Server からデータをインポートする

インポートの準備をする

インポート操作の実行中に、Access によってテーブルが作成され、SQL Server データベースからのデータがそのテーブルにコピーされます。インポート操作の最後に、インポート操作の詳細を定義として保存することを選択できます。

注: 詳細を保存しておくと、今後インポート操作を繰り返す場合に、インポート ウィザードの手順を毎回最初から実行する必要がなくなります。

  1. インポートするデータが含まれる SQL Server データベースを特定します。接続情報については、データベースの管理者にお問い合わせください。

  2. インポートするテーブルまたはビューを特定します。1 回のインポート操作で複数のオブジェクトをインポートすることができます。

  3. 次の点を考慮しながら、ソース データを確認します。

    • Access は 1 テーブルにつき 255 を超えるフィールドをサポートしていないため、Access は最初の 255 列のみをインポートします。

    • Access データベースの最大サイズは、2 GB からシステム オブジェクトに必要な領域を引いた大きさです。SQL Server データベースに大きなテーブルが多数含まれている場合、すべてを 1 つの Access データベースにインポートすることはできません。この場合は、インポートするのでなく、データを Access​​ データベースにリンクすることをお勧めします。

    • Access​ では、インポート操作の最後に関連するテーブル間のリレーションシップが自動的に生成されることはありません。[リレーションシップ] ウィンドウのオプションを使用して、新規テーブルと既存テーブル間でリレーションシップを手動で作成する必要があります。[リレーションシップ] タブを表示するには、次の手順を実行します。

      • [ファイル] タブをクリックし、[情報] タブの [リレーションシップ] をクリックします。

  4. SQL Server データのインポート先の Access データベースを特定します。

    Access​​ データベースにデータを追加するのに必要な権限があることを確認します。既存データベースにデータを格納したくない場合は、[ファイル] タブをクリックし、[新規作成] タブをクリックし、[空のデータベース] をクリックして、空白のデータベースを作成してください。

  5. Access データベースにテーブルが存在する場合は、確認します。

    インポート操作では、SQL Server オブジェクト名と同じ名前のテーブルが作成されます。その名前が既に使用されている場合、Access​​ によって新しいテーブル名に "1" が追加され、Contacts1 のようになります (Contacts1 も既に使用中の場合、Access​​ によって Contacts2 が作成されます。以下同様に作成されます)。

    注: Access​​ では、インポート操作の一環としてデータベース内のテーブルが上書きされることはありません。また、既存のテーブルに SQL Server データを追加することはできません。

データをインポートする

  1. インポート先のデータベースを開きます。

    [外部データ] タブの [インポートとリンク] で、[ODBC ​​データベース] をクリックします。

  2. [現在のデータベースの新しいテーブルにソース データをインポートする] をクリックし、[OK] をクリックします。

  3. [データ ソースの選択] ダイアログ ボックスで、使用したい .dsn ファイルが既に存在する場合は、リスト内の該当するファイルをクリックします。

    新しい .dsn ファイルを作成する必要がある場合

    注: ここに示す手順は、自分のコンピューターにインストールされているソフトウェアによって少し異なる場合があります。

    1. [新規作成] をクリックして、新しいデータ ソース名 (DSN) を作成します。

      [新規データ ソースの作成] ウィザードが開始されます。

    2. このウィザードでは、ドライバーの一覧から [SQL Server] を選択し、[次へ] をクリックします。

    3. 別の場所にファイルを保存するには、.dsn ファイルの名前を入力するか、[参照] をクリックします。

      注: .dsn ファイルを保存するには、フォルダーへの書き込み権限が必要です。

    4. [次へ] をクリックし、サマリー情報を確認して、[完了] をクリックします。これでウィザードは終了します。

      [SQL Server に接続するための新規データ ソースを作成する] ダイアログ ボックスが表示されます。

    5. [説明] ボックスにデータ ソースの説明を入力します。この手順は省略できます。

    6. [接続する SQL Server サーバー名を入力してください。] の [サーバー] ボックスで、接続先の SQL Server の名前を入力または選択し、[次へ] をクリックして続行します。

    7. Microsoft Windows NT 認証または SQL Server 認証のいずれを使用するかなど、SQL Server データベース管理者から情報を取得することが必要な場合があります。[次へ] をクリックして続行します。

    8. 特定のデータベースに接続する場合は、[既定のデータベースを以下に変更する] チェック ボックスがオンになっていることを確認してください。作業するデータベースを選択し、[次へ] をクリックします。

    9. [完了] をクリックします。

    10. サマリー情報を確認して、[データ ソースのテスト] をクリックします。

    11. テストの結果を確認し、[OK] をクリックして、ダイアログ ボックスを閉じます。

      テストが成功している場合は、[OK] をもう一度クリックするか、[キャンセル] をクリックして設定を変更します。

  4. [OK] をクリックして、[データ ソースの選択] ダイアログ ボックスを閉じます。

    Access によって [オブジェクトのインポート] ダイアログ ボックスが表示されます。

  5. [テーブル] で、インポートするそれぞれのテーブルまたはビューをクリックし、[OK] をクリックします。

  6. [固有レコード識別子の選択] ダイアログ ボックスが表示されている場合は、特定のオブジェクトの各行を一意に識別するフィールドを Access で特定できなかったことを意味します。この場合は、それぞれの行の一意のフィールドまたはフィールドの組み合わせを選んで、[OK] をクリックします。わからない場合は、SQL Server データベースの管理者にご確認ください。

    Access によってデータがインポートされます。後でインポート操作を繰り返す場合は、インポート手順をインポート定義として保存することで、同じインポート手順を後で簡単に再実行できます。タスクを作成するには、Microsoft Office Outlook がコンピューターにインストールされている必要があります。

  7. [外部データの取り込み - ODBC データベース] ダイアログ ボックスの [インポート操作の保存] で [閉じる] をクリックします。Access はインポート操作を完了し、ナビゲーション ウィンドウに 1 つまたは複数の新しいテーブルを表示します。

インポートをタスクとして保存して再び使用できるようにする場合は、次のセクションに進みます。

ページの先頭へ

インポート設定を保存および使用する

注: タスクを作成するには、Microsoft Office Outlook がインストールされている必要があります。

  1. [外部データの取り込み - ODBC データベース] ダイアログ ボックスの [インポート操作の保存] で、[インポート操作の保存] チェック ボックスをオンにします。一連の追加コントロールが表示されます。

  2. [名前を付けて保存] ボックスにインポート定義の名前を入力します。

  3. [説明] ボックスに説明を入力します。この手順は省略できます。

  4. インポートを一定の間隔 (週単位、月単位など) で実行する場合は、[Outlook タスクの作成] チェック ボックスをオンにします。この設定を行うと、後で定義を実行できる Microsoft Outlook 2010 のタスクが作成されます。

  5. [インポートの保存] をクリックします。

Outlook がインストールされていない場合、[インポートの保存] をクリックするとエラー メッセージが表示されます。

注: Outlook 2010 が正しく構成されていない場合は、Microsoft Outlook 2010 スタートアップ ウィザードが起動します。ウィザードの指示に従って、Outlook を構成します。

必要に応じて、Outlook タスクを作成することができます。一定間隔で、または定期的にインポート操作を実行する場合は、Outlook でタスクを作成するのが便利です。ただし、タスクを作成しない場合でも、Access によって定義は引き続き保存されます。

Outlook タスクを作成する

[Outlook タスクの作成] チェック ボックスをオンにした場合、Access によって Office Outlook 2010 が起動され、新しいタスクが表示されます。タスクを構成するには、次の手順を実行します。

注: Outlook がインストールされていない場合は、エラー メッセージが表示されます。Outlook が正しく構成されていない場合は、Outlook 構成ウィザードが起動します。このウィザードの指示に従って Outlook を構成してください。

  1. [開始日]、[期限]、[アラーム] などのタスク設定を確認して変更します。

    インポート タスクを定期的なイベントにするには、[定期的なアイテム] をクリックして、適切な情報を入力します。

  2. [保存して閉じる] をクリックします。

保存したタスクを実行する

  1. Outlook のナビゲーション ウィンドウの [タスク] をクリックし、実行するタスクをダブルクリックします。

  2. [タスク] タブの [Microsoft Access] グループで [インポートの実行] をクリックします。

  3. Access ウィンドウに戻り、F5 キーを押して、ナビゲーション ウィンドウを更新します。

  4. インポートしたテーブルをダブルクリックして、データシート ビューで開きます。

  5. すべてのフィールドとレコードが正しくインポートされており、エラーがないことを確認します。

  6. ナビゲーション ウィンドウで、インポートしたテーブルを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。フィールド データ型とその他のフィールド プロパティを確認します。

ページの先頭へ

SQL Server データにリンクする

データはテーブルに保存されるので、SQL Server データベース内のテーブルまたはビューにリンクすると、Access ではソース オブジェクトの構造とコンテンツを反映した新しいテーブル (リンク テーブルと呼ばれることが多い) が作成されます。SQL Server 内でデータを変更することも、Access​​ のデータシート ビューまたはフォーム ビューでデータを変更することもできます。一方のデータに対して加えた変更は、他方のデータにも反映されます。ただし、列の削除や列の変更など、構造的な変更を実行する場合は、SQL Server データベースから行うか、またはそのデータベースに接続されている Access プロジェクトから行う必要があります。Access での作業中に、リンク テーブル内のフィールドの追加、削除、または変更を行うことはできません。

リンクの準備をする

  1. リンク先のデータが存在する SQL Server データベースを探します。接続情報については、データベース管理者にお問い合わせください。

  2. リンク先のテーブルまたはビューを特定します。1 回のリンク設定操作で複数のオブジェクトにリンクすることができます。

  3. 次の点を考慮しながら、ソース データを確認します。

    • 1 つのテーブルで Access がサポートできるフィールドの数は最大 255 (列) であるため、リンク テーブルに追加されるのは、リンク対象オブジェクトの最初の 255 個のフィールドのみです。

    • SQL Server オブジェクトで読み取り専用になっている列は、Access でも引き続き読み取り専用として扱われます。

    • Access ではリンク テーブルにある列の追加、削除、または変更を行うことはできません。

  4. リンク テーブルを作成する Access ​​データベースを指定します。データベースにデータを追加するのに必要な権限があることを確認します。既存のデータベースにデータを格納したくない場合は、新しい空白のデータベースを作成してください。そのためには、[ファイル] タブをクリックし、[新規作成] タブで、[空のデータベース] をクリックします。

  5. Access​​ データベース内のテーブルを調べます。SQL Server のテーブルまたはビューにリンクする場合、Access​​ ではソース オブジェクトと同じ名前のリンク テーブルが作成されます。その名前が既に使用されている場合は、新しいリンク テーブル名に "1" が追加され、Contacts1 のようになります (Contacts1 も使用されている場合は、Contacts2 が作成されます。以下同様に作成されます)。

  6. データにリンクするには、リンク先のデータベースを開きます。

  7. [外部データ] タブの [インポートとリンク] で、[ODBC ​​データベース] をクリックします。

  8. [リンク テーブルを作成してソース データにリンクする] をクリックし、[OK] をクリックします。

  9. [データ ソースの選択] ダイアログ ボックスで、使用する .dsn ファイルをクリックするか、または [新規作成] をクリックして新しいデータ ソース名 (DSN) を作成します。

  10. [データ ソースの選択] ダイアログ ボックスで、使用したい .dsn ファイルが既に存在する場合は、リスト内の該当するファイルをクリックします。

    新しい .dsn ファイルを作成する必要がある場合

    注: ここに示す手順は、自分のコンピューターにインストールされているソフトウェアによって少し異なる場合があります。

    1. [新規作成] をクリックして、新しいデータ ソース名 (DSN) を作成します。

      [新規データ ソースの作成] ウィザードが開始されます。

    2. このウィザードでは、ドライバーの一覧から [SQL Server] を選択し、[次へ] をクリックします。

    3. 別の場所にファイルを保存するには、.dsn ファイルの名前を入力するか、[参照] をクリックします。

      注: .dsn ファイルを保存するには、フォルダーへの書き込み権限が必要です。

    4. [次へ] をクリックし、サマリー情報を確認して、[完了] をクリックします。これで [新規データ ソースの作成] ウィザードは終了します。

      [SQL Server に接続するための新規データ ソースを作成する] が起動します。

    5. ウィザードの [説明] ボックスにデータ ソースの説明を入力します。この手順は省略可能です。

    6. [接続する SQL Server サーバー名を入力してください。] の [サーバー] ボックスで、接続先の SQL Server コンピューターの名前を入力または選択し、[次へ] をクリックして続行します。

    7. ウィザードのこのページでは、Windows NT 認証または SQL Server 認証のいずれを使用するかなど、SQL Server データベース管理者から情報を取得することが必要な場合があります。[次へ] をクリックして続行します。

    8. ウィザードの次のページでは、SQL Server データベース管理者から詳細情報を取得することが必要な場合があります。特定のデータベースに接続する場合は、[既定のデータベースを以下のものに変更する] チェック ボックスがオンになっていることを確認し、作業する SQL Server データベースを選択し、[次へ] をクリックします。

    9. [完了] をクリックします。サマリー情報を確認して、[データ ソースのテスト] をクリックします。

    10. テストの結果を確認し、[OK] をクリックして、[SQL Server ODBC データ ソース テスト] ダイアログ ボックスを閉じます。

      テストが成功した場合は、再び [OK] をクリックしてウィザードを完了させるか、または [キャンセル] をクリックしてウィザードに戻り、設定を変更します。

  11. [OK] をクリックします。

    Access​​ では [リンク テーブル] ダイアログ ボックスが表示されます。

  12. [テーブル] で、リンクする各テーブル、ビューをクリックして、[OK] をクリックします。

    1. [固有レコード識別子の選択] ダイアログ ボックスが表示されている場合は、ソース データの各行を一意に識別するフィールドを Access で特定できなかったことを意味します。この場合は、それぞれの行の一意のフィールドまたはフィールドの組み合わせを選んで、[OK] をクリックします。わからない場合は、SQL Server データベースの管理者にご確認ください。

Access はリンク操作を終了し、ナビゲーション ウィンドウに 1 つまたは複数の新しいリンク テーブルを表示します。

重要: リンク テーブルまたはソース オブジェクトのいずれかを開くたびに、最新のデータが表示されます。ただし、SQL Server オブジェクトに加えられた構造的な変更は、リンク テーブルに自動的には反映されません。

最新の SQL Server オブジェクト構造を適用して、リンク テーブルを更新する

  1. ナビゲーション ウィンドウでテーブルを右クリックし、ショートカット メニューの [リンク テーブル マネージャー] をクリックします。

  2. 更新する各リンク テーブルの横にあるチェック ボックスをオンにするか、[すべて選択] をクリックしてすべてのリンク テーブルを選択します。

  3. [OK] をクリックします。

    更新が正常終了した場合は、その結果に対するメッセージが表示されます。それ以外の場合は、エラー メッセージが表示されます。

  4. [閉じる] をクリックして、リンク テーブル マネージャーを閉じます。

ページの先頭へ

Access で SQL Server データ型を表示する方法

Access データ型は SQL Server データ型とは異なるため、Access​​ ではインポートまたはリンクする各 SQL Server テーブルまたはビューの列ごとに、使用するのに最適な Access​​ データ型を決定する必要があります。たとえば、bit データ型の SQL Server 列は、Yes/No データ型で Access にインポートまたはリンクされます。別の例として、nvarchar(255) (またはそれより小さい) データ型の SQL Server 列は、テキスト データ型でインポートまたはリンクされますが、nvarchar(256) (またはそれより大きい) は、Access​​ メモ型フィールドとしてインポートされます。インポート操作またはリンク操作の完了後は、デザイン ビューでテーブルを開き、Access​​ のフィールドに割り当てられているデータ型を確認できます。インポートされたテーブル内のフィールドのデータ型は変更することができます。ただし、リンク テーブル内のフィールドのデータ型を変更することはできません。例外として、SQL Server データベース自体で、またはそのデータベースに接続されている Access プロジェクトから、データ型を変更することはできます。

次の表に、メインの SQL Server データ型を一覧表示します。2 番目の列と 3 番目の列では、各データ型が Access​​ でどのように解釈されるかを示しています。

SQL Server のデータ型

Access のデータ型

Access のフィールド サイズ

bigint

テキスト

255

binary ( フィールド サイズ )

バイナリ

SQL Server フィールド サイズと同じ

bit

Yes/No

char ( フィールド サイズ )、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

char ( フィールド サイズ )、フィールド サイズが 255 より大きい

メモ

datetime

日付/時刻

decimal ( 精度 小数点以下桁数 )

数値

Decimal (Access の Precision および Scale プロパティは SQL Server の precision と scale に一致します)

float

数値

倍精度浮動小数点型

image

OLE オブジェクト

int

数値

長整数型

money

通貨

nchar ( フィールド サイズ )、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

nchar ( フィールド サイズ )、フィールド サイズが 255 より大きい

メモ

ntext

メモ

numeric ( 精度 小数点以下桁数 )

数値

Decimal (Access の Precision および Scale プロパティは SQL Server の precision と scale に一致します)

nvarchar ( フィールド サイズ )、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

nvarchar ( フィールド サイズ )、フィールド サイズが 255 より大きい

メモ

nvarchar(MAX)

メモ

real

数値

単精度浮動小数点型

smalldatetime

日付/時刻

smallint

数値

整数型

smallmoney

通貨

sql_variant

テキスト

255

テキスト

メモ

timestamp

バイナリ

8

tinyint

数値

バイト型

uniqueidentifier

数値

レプリケーション ID

varbinary

バイナリ

SQL Server フィールド サイズと同じ

varbinary(MAX)

OLE オブジェクト

varchar (フィールド サイズ)、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

varchar ( フィールド サイズ)、フィールド サイズが 255 より大きい

メモ

varchar(MAX)

メモ

xml

メモ

ページの先頭へ

データの保存に Microsoft SQL Server を使用している部署またはワークグループでは、SQL Server データの一部を Microsoft Office Access 2007 で操作することが必要になる場合があります。

SQL Server を使い慣れていない場合、詳細については、Microsoft SQL Server のホーム ページを参照してください。この記事の「参照」セクションにリンクを記載しています。

データを SQL Server オブジェクト (テーブルまたはビュー) から Office Access 2007 に取り込むには、インポートとリンクの 2 つの方法があります。データをインポートする場合は、Access データベースにデータをコピーします。以降、Access のデータに加えた変更は、SQL Server データベースには反映されません。同様に、それ以降に SQL Server のテーブルまたはビューに対して行った変更も、Access テーブルには反映されません。一方、SQL Server データにリンクした場合、データは SQL Server コンピューター上に保持され、Access​​ はそのデータへの接続を維持します。以降、Access データに加えた変更は、SQL Server データに反映され、SQL Server データベースで行った変更も、Access テーブルのリンク テーブルに反映されます。

この記事では、SQL Server データを Access 2007 にインポートおよびリンクする手順について説明します。

SQL Server データをインポートする

SQL Server データをインポートすると、Access データベースでデータのコピーが作成されます。インポート操作時に、コピーするテーブルまたはビューを指定します。

インポート操作を実行すると、Access にテーブルが作成され、その Access​​ のテーブルに SQL Server データベースからデータがコピーされます。テーブルとデータベース構成の詳細については、「参照」セクションのリンクをご利用ください。

インポート操作の最後に、インポート操作の詳細を定義として保存することができます。インポート定義を使用すると、後でインポート操作を繰り返すことができ、毎回インポート ウィザードの手順を実行する必要はありません。

SQL Server テーブルを Access にインポートする一般的なシナリオ

通常は、次の理由により、SQL Server データを Access データベースにインポートします。

  • SQL Server データベース内のデータが不要になったために、SQL Server データを Access データベースに完全に移動する場合。Access にデータをインポートし、SQL Server データベースからそのデータを削除できます。

  • 所属する部署またはワークグループで Access​​ を使用しているが、ときどき補足データについて SQL Server データベースを参照しなければならず、それを Access​​ データベースに結合したい場合。

次の手順では、SQL Server のデータを Access データベースにインポートする方法を説明します。

インポートの準備を行う

  1. コピーするレコードが含まれる SQL ​​Server データベースを特定します。接続情報については、データベースの管理者にお問い合わせください。

  2. Access データベースにコピーするテーブルまたはビューを識別します。1 回のインポート操作で複数のオブジェクトをインポートすることができます。

  3. 次の点を考慮しながら、ソース データを確認します。

    • Access は 1 テーブルにつき 255 を超えるフィールドをサポートしていないため、Access は最初の 255 列のみをインポートします。

    • Access データベースの最大サイズは、2 GB からシステム オブジェクトに必要な領域を引いた大きさです。SQL Server データベースに大きなテーブルが多数含まれている場合、すべてを 1 つの Access データベースにインポートすることはできません。この場合は、インポートするのでなく、データを Access​​ データベースにリンクすることをお勧めします。

    • Access​​ では、インポート操作の最後に関連するテーブル間のリレーションシップが自動的に生成されることはありません。[リレーションシップ] タブのオプションを使用して、新規テーブルと既存テーブル間でリレーションシップを手動で作成する必要があります。[リレーションシップ] タブを表示するには:
      [データベース ツール] タブの [表示/非表示] グループで [リレーションシップ] をクリックします。 ボタン イメージ

  4. SQL Server データのインポート先の Access データベースを特定します。

    Access​​ データベースにデータを追加するのに必要な権限があることを確認します。既存データベースにデータを格納したくない場合は、Microsoft Office ボタン Office ボタンの画像 をクリックし、[新規作成] をクリックして、空白のデータベースを作成してください。

  5. Access データベースにテーブルが存在する場合は、確認します。

    インポート操作では、SQL Server オブジェクト名と同じ名前のテーブルが作成されます。その名前が既に使用されている場合、Access​​ によって新しいテーブル名に "1" が追加され、Contacts1 のようになります (Contacts1 も既に使用中の場合、Access​​ によって Contacts2 が作成されます。以下同様に作成されます)。

    注: Access​​ では、インポート操作の一環としてデータベース内のテーブルが上書きされることはありません。また、既存のテーブルに SQL Server データを追加することはできません。

データをインポートする

  1. インポート先のデータベースを開きます。

    [外部データ] タブの [インポート] グループで、[その他] をクリックします。

  2. [ODBC データベース] ボタン イメージ をクリックします。

  3. [現在のデータベースの新しいテーブルにソース データをインポートする] をクリックし、[OK] をクリックします。

  4. [データ ソースの選択] ダイアログ ボックスで、使用したい .dsn ファイルが既に存在する場合は、リスト内の該当するファイルをクリックします。

    新しい .dsn ファイルを作成する必要がある場合

    注: ここに示す手順は、自分のコンピューターにインストールされているソフトウェアによって少し異なる場合があります。

    1. [新規作成] をクリックして、新しいデータ ソース名 (DSN) を作成します。
      [新規データ ソースの作成] ウィザードが開始されます。

    2. このウィザードでは、ドライバーの一覧から [SQL Server] を選択し、[次へ] をクリックします。

    3. 別の場所にファイルを保存するには、.dsn ファイルの名前を入力するか、[参照] をクリックします。

      注: .dsn ファイルを保存するには、フォルダーへの書き込み権限が必要です。

    4. [次へ] をクリックし、サマリー情報を確認して、[完了] をクリックします。これでウィザードは終了します。
      [SQL Server に接続するための新規データ ソースを作成する] が起動します。

    5. ウィザードの [説明] ボックスにデータ ソースの説明を入力します。この手順は省略可能です。

    6. [接続する SQL Server サーバー名を入力してください。] の [サーバー] ボックスで、接続先の SQL Server の名前を入力または選択し、[次へ] をクリックして続行します。

    7. ウィザードのこのページでは、Microsoft Windows NT 認証または SQL Server 認証のいずれを使用するかなど、SQL Server データベース管理者から情報を取得することが必要な場合があります。[次へ] をクリックして続行します。

    8. ウィザードの次のページでは、先に進む前に SQL Server データベース管理者から詳細情報を取得することが必要な場合があります。特定のデータベースに接続する場合は、[既定のデータベースを以下に変更する] チェック ボックスがオンになっていることを確認してください。作業するデータベースを選択し、[次へ] をクリックします。

    9. [完了] をクリックします。サマリー情報を確認して、[データ ソースのテスト] をクリックします。

    10. テストの結果を確認し、[OK] をクリックして、[SQL Server ODBC データ ソース テスト] ダイアログ ボックスを閉じます。

      テストが成功した場合は、再び [OK] をクリックしてウィザードを完了させるか、または [キャンセル] をクリックしてウィザードに戻り、設定を変更します。

  5. [OK] をクリックして、[データ ソースの選択] ダイアログ ボックスを閉じます。

    Access によって [オブジェクトのインポート] ダイアログ ボックスが表示されます。

  6. [テーブル] で、インポートするそれぞれのテーブルまたはビューをクリックし、[OK] をクリックします。

  7. [固有レコード識別子の選択] ダイアログ ボックスが表示されている場合は、特定のオブジェクトの各行を一意に識別するフィールドを Access で特定できなかったことを意味します。この場合は、それぞれの行の一意のフィールドまたはフィールドの組み合わせを選んで、[OK] をクリックします。わからない場合は、SQL Server データベースの管理者にご確認ください。

Access によってデータがインポートされます。後でインポート操作を繰り返す場合は、インポート手順をインポート定義として保存することで、同じインポート手順を後で簡単に再実行できます。そのタスクを実行するには、この記事の次のセクションに移動します。インポート定義の詳細を保存したくない場合は、[外部データの取り込み - ODBC データベース] ダイアログ ボックスの [インポート操作の保存] の下にある [閉じる] をクリックします。Access はインポート操作を完了し、ナビゲーション ウィンドウに 1 つまたは複数の新しいテーブルを表示します。

インポート手順を定義として保存する

  1. [外部データの取り込み - ODBC データベース] ダイアログ ボックスの [インポート操作の保存] で、[インポート操作の保存] チェック ボックスをオンにします。

    一連の追加コントロールが表示されます。

  2. [名前を付けて保存] ボックスにインポート定義の名前を入力します。

  3. [説明] ボックスに説明を入力します。この手順は省略できます。

  4. エクスポートを一定の間隔 (週単位、月単位など) で実行する場合は、[Outlook タスクの作成] チェック ボックスをオンにします。この設定を行うと、後で定義を実行できる Microsoft Office Outlook 2007 のタスクが作成されます。

  5. [インポートの保存] をクリックします。

Outlook タスクを構成する

前の手順で [Outlook タスクの作成] チェック ボックスをオンにした場合、Access で Office Outlook 2007 が起動され、新しいタスクが表示されます。 タスクを構成するには、次の手順どおりに行います。

注: Outlook がインストールされていない場合は、エラー メッセージが表示されます。Outlook が正しく構成されていない場合は、Outlook 構成ウィザードが起動します。このウィザードの指示に従って Outlook を構成してください。

  1. Outlook のタスク ウィンドウで、[期限]、[アラーム] などのタスクの設定を確認し、必要に応じて変更します。

    タスクを定期的に実行するには、[定期的なアイテム] をクリックし、適切な情報を入力します。

    次の図は、典型的な設定のタスク スケジューラを示します。

    Outlook のタスク スケジューラ

    Outlook 仕事をスケジュール設定する方法については、「インポート操作やエクスポート操作のスケジュールを設定する」を参照してください。

  2. Outlook でタスクの設定が終了したら、[タスク] タブの [アクション] グループで、[保存して閉じる] をクリックします。

保存したタスクを実行する

  1. Outlook のナビゲーション ウィンドウの [タスク] をクリックし、実行するタスクをダブルクリックします。

  2. [タスク] タブの [Microsoft Office Access] グループで [インポートの実行 ボタンの画像 ] をクリックします。

  3. Access ウィンドウに戻り、F5 キーを押して、ナビゲーション ウィンドウを更新します。

  4. インポートしたテーブルをダブルクリックして、データシート ビューで開きます。

  5. すべてのフィールドとレコードが正しくインポートされており、エラーがないことを確認します。

  6. ナビゲーション ウィンドウで、インポートしたテーブルを右クリックし、ショートカット メニューの [デザイン ビュー] をクリックします。フィールド データ型とその他のフィールド プロパティを確認します。

ページの先頭へ

SQL Server データにリンクする

リンクを設定すると、インポートを行わなくてもデータに接続できます。その結果、SQL Server データベースと Access データベースの両方で最新のデータを表示および編集することができ、Access でデータのコピーを作成して維持する必要はありません。SQL Server データを Access データベースにコピーしたくないが、クエリを実行してそのデータに基づくレポートを作成したい場合は、インポートではなくリンクを選択します。

SQL Server データベース内のテーブルまたはビューにリンクすると、Access ではソース オブジェクトの構造とコンテンツを反映した新しいテーブル (リンク テーブルと呼ばれることが多い) が作成されます。SQL Server 内でデータを変更することも、Access​​ 内のデータシート ビューまたはフォーム ビューでデータを変更することもできます。一方のデータに対して加えた変更は、他方のデータにも反映されます。ただし、列の削除や列の変更など、構造的な変更を実行する場合は、SQL Server データベースで行うか、またはそのデータベースに接続されている Access プロジェクトで行う必要があります。Access での作業中に、リンク テーブル内のフィールドの追加、削除、または変更を行うことはできません。

Access データベースの最大サイズは 2GB からシステム オブジェクトに必要な領域を差し引いた大きさとなるため、SQL Server データベースに大量のデータが含まれている場合は、インポートよりもリンクを選択します。大規模なテーブルまたはビューを多数インポートすると、Access​​ の最大サイズを超える可能性があります。一方、データへのリンク設定の場合は、Access データベースに大したサイズは追加されません。

SQL Server データにリンクする場合の一般的シナリオ

一般的には、次の理由により、Access​​ データベースから SQL Server のテーブルまたはビューにリンクします。

  • 所属する部署またはワークグループで、レポート作成やクエリには Access​​ を使用し、データ ストレージとしては SQL ​​Server を使用する場合。個々のチームは、SQL Server テーブルおよびビューを一元的なストレージとして作成できますが、このデータを集計しレポートを作成するためにデスクトップ プログラムに取り込むことがしばしば必要になります。この場合はリンクを設定するのが適切な選択です。SQL Server サイトと Access​​ データベースの両方のユーザーがデータの追加や更新を行い、常に最新のデータで作業できるからです。

  • ごく最近 SQL ​​Server を使用し始めた Access​​ ユーザーの場合。いくつかのデータベースを SQL Server に移行し、移行したデータベース内のほとんどのテーブルがリンク テーブルになっています。それ以降は、Access​​ テーブルを作成するのではなく、SQL ​​Server 内にテーブルとビューを作成し、Access​​ データベースからそれらにリンクします。

  • データは引き続き SQL Server に保存するが、クエリを実行したり、Access​​ でデザインしたレポートを印刷したりするために、Access​​ でも最新のデータを使用したい場合。

SQL Server テーブルへのリンクの準備をする

  1. リンク先のデータが存在する SQL Server データベースを探します。接続情報については、データベース管理者にお問い合わせください。

  2. リンク先のテーブルまたはビューを特定します。1 回のリンク設定操作で複数のオブジェクトにリンクすることができます。

  3. 次の点を考慮しながら、ソース データを確認します。

    • 1 つのテーブルで Access がサポートできるフィールドの数は最大 255 (列) であるため、リンク テーブルに追加されるのは、リンク対象オブジェクトの最初の 255 個のフィールドのみです。

    • SQL Server オブジェクトで読み取り専用になっている列は、Access でも引き続き読み取り専用として扱われます。

    • Access ではリンク テーブルにある列の追加、削除、または変更を行うことはできません。

  4. リンク テーブルを作成する Access​​ データベースを指定します。データベースにデータを追加するのに必要な権限があることを確認します。既存データベースにデータを格納したくない場合は、次のコマンドを使用して、新しい空白のデータベースを作成してください。

    Microsoft Office ボタン Office ボタンの画像 をクリックして、[新規] をクリックします。

  5. Access​​ データベース内のテーブルを調べます。SQL Server のテーブルまたはビューにリンクする場合、Access​​ ではソース オブジェクトと同じ名前のリンク テーブルが作成されます。その名前が既に使用されている場合は、新しいリンク テーブル名に "1" が追加され、Contacts1 のようになります (Contacts1 も使用されている場合は、Contacts2 が作成されます。以下同様に作成されます)。

データにリンクする

  1. リンク先のデータベースを開きます。

  2. [外部データ] タブの [インポート] グループで、[その他] をクリックします。

  3. [ODBC データベース] をクリックします。

  4. [リンク テーブルを作成してソース データにリンクする] をクリックし、[OK] をクリックします。

  5. [データ ソースの選択] ダイアログ ボックスで、使用する .dsn ファイルをクリックするか、または [新規作成] をクリックして新しいデータ ソース名 (DSN) を作成します。

  6. [データ ソースの選択] ダイアログ ボックスで、使用したい .dsn ファイルが既に存在する場合は、リスト内の該当するファイルをクリックします。

    新しい .dsn ファイルを作成する必要がある場合

    注: ここに示す手順は、自分のコンピューターにインストールされているソフトウェアによって少し異なる場合があります。

    1. [新規作成] をクリックして、新しいデータ ソース名 (DSN) を作成します。
      [新規データ ソースの作成] ウィザードが開始されます。

    2. このウィザードでは、ドライバーの一覧から [SQL Server] を選択し、[次へ] をクリックします。

    3. 別の場所にファイルを保存するには、.dsn ファイルの名前を入力するか、[参照] をクリックします。

      注: .dsn ファイルを保存するには、フォルダーへの書き込み権限が必要です。

    4. [次へ] をクリックし、サマリー情報を確認して、[完了] をクリックします。これで [新規データ ソースの作成] ウィザードは終了します。
      [SQL Server に接続するための新規データ ソースを作成する] が起動します。

    5. ウィザードの [説明] ボックスにデータ ソースの説明を入力します。この手順は省略可能です。

    6. [接続する SQL Server サーバー名を入力してください。] の [サーバー] ボックスで、接続先の SQL Server コンピューターの名前を入力または選択し、[次へ] をクリックして続行します。

    7. ウィザードのこのページでは、Windows NT 認証または SQL Server 認証のいずれを使用するかなど、SQL Server データベース管理者から情報を取得することが必要な場合があります。[次へ] をクリックして続行します。

    8. ウィザードの次のページでは、SQL Server データベース管理者から詳細情報を取得することが必要な場合があります。特定のデータベースに接続する場合は、[既定のデータベースを以下のものに変更する] チェック ボックスがオンになっていることを確認し、作業する SQL Server データベースを選択し、[次へ] をクリックします。

    9. [完了] をクリックします。サマリー情報を確認して、[データ ソースのテスト] をクリックします。

    10. テストの結果を確認し、[OK] をクリックして、[SQL Server ODBC データ ソース テスト] ダイアログ ボックスを閉じます。

      テストが成功した場合は、再び [OK] をクリックしてウィザードを完了させるか、または [キャンセル] をクリックしてウィザードに戻り、設定を変更します。

  7. [OK] をクリックします。
    Access では、[リンク テーブル] ダイアログ ボックスが表示されます。

  8. [テーブル] で、リンクする各テーブル、ビューをクリックして、[OK] をクリックします。

  9. [固有レコード識別子の選択] ダイアログ ボックスが表示されている場合は、ソース データの各行を一意に識別するフィールドを Access で特定できなかったことを意味します。この場合は、それぞれの行の一意のフィールドまたはフィールドの組み合わせを選んで、[OK] をクリックします。わからない場合は、SQL Server データベースの管理者にご確認ください。

Access はリンク操作を完了し、ナビゲーション ウィンドウに 1 つまたは複数の新しいリンク テーブルを表示します。

重要: リンク テーブルまたはソース オブジェクトのいずれかを開くたびに、最新のデータが表示されます。ただし、SQL Server オブジェクトに加えられた構造的な変更は、リンク テーブルに自動的には反映されません。


最新の SQL Server オブジェクト構造を適用することにより、リンク テーブルを更新するには:

  1. ナビゲーション ウィンドウでテーブルを右クリックし、ショートカット メニューの [リンク テーブル マネージャー] をクリックします。

  2. 更新する各リンク テーブルの横にあるチェック ボックスをオンにするか、[すべて選択] をクリックしてすべてのリンク テーブルを選択します。

  3. [OK] をクリックします。

    更新が正常終了した場合は、その結果に対するメッセージが表示されます。それ以外の場合は、エラー メッセージが表示されます。

  4. [閉じる] をクリックして、リンク テーブル マネージャーを閉じます。

ページの先頭へ

Access が SQL Server データ型を解釈する方法

Access データ型は SQL Server データ型とは異なるため、Access​​ ではインポートまたはリンクする各 SQL Server テーブルまたはビューの列ごとに、使用するのに最適な Access​​ データ型を決定する必要があります。たとえば、bit データ型の SQL Server 列は、Yes/No データ型で Access にインポートまたはリンクされます。別の例として、nvarchar(255) (またはそれより小さい) データ型の SQL Server 列は、テキスト データ型で Access​​ にインポートまたはリンクされますが、nvarchar(256) (またはそれより大きい) は、Access​​ メモ型フィールドとして取り込まれます。インポート操作またはリンク設定操作を完了後は、デザイン ビューでテーブルを開き、Access​​ のフィールドに割り当てられているデータ型を確認してください。インポートされたテーブル内のフィールドのデータ型は変更できます。ただし、リンク テーブル内のフィールドのデータ型を変更することはできません。例外として、SQL Server データベース自体で、またはそのデータベースに接続されている Access プロジェクトから、データ型を変更することはできます。

次の表に、メインの SQL Server データ型を一覧表示します。2 番目の列と 3 番目の列では、各データ型が Access​​ でどのように解釈されるかを示しています。

SQL Server のデータ型

Access のデータ型

Access のフィールド サイズ

bigint

テキスト

255

binary ( フィールド サイズ )

バイナリ

SQL Server フィールド サイズと同じ

bit

Yes/No

char ( フィールド サイズ )、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

char ( フィールド サイズ )、フィールド サイズが 255 より大きい

メモ

datetime

日付/時刻

decimal ( 精度 小数点以下桁数 )

数値

Decimal (Access の Precision および Scale プロパティは SQL Server の precision と scale に一致します)

float

数値

倍精度浮動小数点型

image

OLE オブジェクト

int

数値

長整数型

money

通貨

nchar ( フィールド サイズ )、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

nchar ( フィールド サイズ )、フィールド サイズが 255 より大きい

メモ

ntext

メモ

numeric ( 精度 小数点以下桁数 )

数値

Decimal (Access の Precision および Scale プロパティは SQL Server の precision と scale に一致します)

nvarchar ( フィールド サイズ )、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

nvarchar ( フィールド サイズ )、フィールド サイズが 255 より大きい

メモ

nvarchar (MAX)

メモ

real

数値

単精度浮動小数点型

smalldatetime

日付/時刻

smallint

数値

整数型

smallmoney

通貨

sql_variant

テキスト

255

テキスト

メモ

timestamp

バイナリ

8

tinyint

数値

バイト型

uniqueidentifier

数値

レプリケーション ID

varbinary

バイナリ

SQL Server フィールド サイズと同じ

varbinary (MAX)

OLE オブジェクト

varchar ( フィールド サイズ )、フィールド サイズが 255 以下

テキスト

SQL Server フィールド サイズと同じ

varchar ( フィールド サイズ)、フィールド サイズが 255 より大きい

メモ

varchar (MAX)

メモ

xml

メモ

ページの先頭へ

スキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×