Access をフロントエンド アプリケーションとして使用し、バックエンド サーバー内のテーブル (SQL Server など) にリンクできます。 既定では、ほとんどのクエリは Access ACE データベース エンジンでローカルに実行されます。 場合によっては、SQL 構文やその他の要因に応じて、SQL Serverでクエリをリモートで実行できます。 詳細については、 再検出された JET および ODBC ホワイト ペーパーの「JET データベース エンジン バージョン 3.0: ODBC 接続」を参照してください。
ただし、多くの場合、データベース サーバーでクエリを明示的に実行する必要があります。 これは、パフォーマンスの向上に役立ちます。データベース サーバーはデスクトップ コンピューターよりも処理能力が高く、ネットワーク接続経由でデータのサブセットを小さく返すことができます。 データベース サーバーでクエリを実行するには、ODBC 接続文字列を使用してSQL Serverに接続する Transact SQL (TSQL) ステートメントであるパススルー クエリを使用します。 たとえば、SELECT ステートメントを渡して、データシート、フォーム、レポート、またはリスト コントロールにデータを返し、同等のアクション クエリ (DML ) ステートメントを実行し、ストアド プロシージャを呼び出し、管理タスク (データ定義言語 (DDL) ステートメントを実行できます。
メモ パススルー クエリの結果は読み取り専用です。 データシートまたはフォーム内のデータを直接編集するには、インデックス付きビューにリンクされたテーブルを作成します。 詳細については、「 インデックス付きビューの作成」を参照してください。
- サーバー データベースに接続します。
SQL Serverへのリンクの詳細については、「SQL Server データベース内のデータをインポートまたはリンクする」および「Azure SQL サーバー データベースにデータをリンクまたはインポートする」を参照してください。 - [ 作成>Query Design] を選択します。
- 必要に応じて、[ テーブルの追加 ] ダイアログ ボックスを閉じます (Access でテーブルを表示 します。
- [ デザイン>パススルー] を選択します。
Access では、クエリ デザイン グリッドが非表示になり、 SQL ビューが表示されます。 - クエリ プロパティ シートが表示されない場合は、F4 キーを押して表示します。
- プロパティ シートで、[ ODBC Connect Str ] プロパティ ボックスをクリックし、次のいずれかの操作を行います。
接続文字列を取得するには:
- ナビゲーション ウィンドウで、目的のデータ ソースにリンクされているテーブルを右クリックし、[ リンクされたテーブル マネージャー] を選択します。
- [リンク テーブル マネージャー] ダイアログ ボックスで、データ ソースの [チェック] ボックスを選択し、[編集] を選択します。
- [ リンクの編集 ] ダイアログ ボックスで、[ 接続文字列 ] ボックスのテキストをコピーします。
SQL ビューにクエリを入力します。
メモ:Access SQL と SQL Server TSQL には重要な違いがあります。特に構文、関数名、関数引数を使用します。 詳細については、「Access SQL と SQL Server TSQL の比較」を参照してください。
ヒント最初にSQL Server Management Studioで TSQL クエリをビルドし、SQL をコピーして SQL ビューに貼り付けます。 これにより、クエリの構文が正しいことを確認します。 SQL Server データベースに簡単にアクセスできない場合は、最大 10 GB をサポートし、移行を実行してチェックする無料で簡単な方法である Microsoft SQL Server Express エディションをデスクトップにインストールすることを検討してください。追加の関連プロパティを設定することを検討してください。
レコードを返します 一部の SQL ステートメントは、SELECT などのレコードを返し、一部は UPDATE などのレコードを返しません。 クエリからレコードが返される場合は、このプロパティを [はい] に設定します。クエリでレコードが返されない場合は、このプロパティを [いいえ] に設定します。
メモ パススルー クエリは複数の結果セットを返すことができますが、データシート、フォーム、レポート、またはレコードセット変数では、最初の結果セットのみが使用されます。 次の例に示すように、複数の結果セットを取得するには、 テーブル作成クエリ を使用します。SELECT <pass-through query name>.* INTO <local table name> FROM < pass-through query name >各結果セットの列が異なる場合があるため、アスタリスク (*) を使用する必要があります。 各結果セットは個別のテーブルに保存され、それに応じて番号がローカル テーブル名に追加されます。 たとえば、3 つの結果セットが返された場合、テーブル名は <local table name>、 <local table name>1、 <local table name>2 になります。
ログ メッセージ Access メッセージ テーブル内の SQL データベースからメッセージを返すかどうかを指定します。 テーブル名の形式は username – nn です。username は現在のユーザーのサインイン名で、nn は 00 から始まる数値です。
ODBC タイムアウト クエリの実行時にタイムアウト エラーが発生するまで待機する秒数を指定します。 既定値は 60 秒です。 ネットワーク トラフィックやデータベース サーバーの使用が多いため、遅延が発生する可能性があります。
最大レコード数 返すレコードの最大数を指定します。 システム リソースが限られている場合や、少量のデータで結果をテストしたい場合があります。
クエリの入力が完了したら、[ デザイン>Run] を選択します。 クエリは、処理のためにデータベース サーバーに送信されます。
![ビルダー] ボタン を選択します](media/buildbut.gif)