[Office Master] | |||||||||||
データベース・サーバに直接コマンドを発行する
|
|||||||||||
|
解説 |
「TIPS―データベース・サーバのフロントエンドとしてAccessを利用する」では、MySQLやPostgreSQLなどバックエンドのデータベース・サーバに対するユーザー・インターフェイスとして、Microsoft Accessを利用する方法を紹介した。
これによって、データの登録・更新などに際しても、いちいちコマンド・プロンプトからSQLコマンドを入力する必要がなくなり、便利になったはずだ。しかし、そこで紹介した「リンクされたテーブル」は通常のテーブルと異なり、テーブルを直接削除したり、デザイン・モードでテーブル・デザインを変更したり(フィールドの追加や桁数・属性の変更など)することができない。
では、データベースの構成情報を変更したい場合には、いちいちコマンド・プロンプトを開かなければならないのだろうか。
答は「否」である。
Accessではリモートのデータベース・サーバに対して直接コマンドを発行する「パススルー クエリ」というしくみが用意されている。これを利用することで、データベース・サーバ上のテーブル削除や定義変更といった処理も、Access上で扱えるようになる。
それではさっそく、設定までの流れを見てみることにしよう。接続するデータベース・サーバによって手順には若干の差があるが、ここでは軽量かつシンプルな機能が特徴であるMySQLサーバを例にとってみる。MySQLサーバ自体のインストールやユーザー設定などについては割愛するので、IT Linuxフォーラムの「MySQLインストール完全ガイド」や、筆者の運営する「サーバサイドの学び舎 - WINGS」サイトの「サーバサイド環境設定」などを参考にしてほしい。
操作方法 |
手順1―空の「.mdb」ファイルから新規にパススルー・クエリを作成する
Microsoft Accessで新規のデータベースを開き、[クエリ]タブから[新規作成]をクリックする。「クエリの新規作成」ダイアログが表示されたら、「デザイン ビュー」を選択し、[OK]をクリックする。
クエリの新規作成 | |||
新規作成されたクエリ。 | |||
|
手順2―パススルー・クエリに切り替える
デザインビューでは初期状態で「選択クエリ」になっているので、メニュー・バーから[クエリ]-[SQL]-[パス スルー]を選択する。
SQLパススルー・クエリ | |||
SQLパススルー・クエリ・モードに変更すると、SQL文を入力する画面になる。 | |||
|
すると、上のような「SQLパススルー クエリ」画面に切り替わるはずだ。ここに、データベース・サーバに対して発行したいSQLコマンドを入力してみよう。例えば新規のmasterテーブルをデータベース・サーバに作成するには、次のように入力する。
CREATE TABLE master(id INT NOT NULL PRIMARY KEY, title VARCHAR(50)); |
手順3―パススルー・クエリのプロパティを設定する
ただし、パススルー・クエリはこのままでは実行できない。パススルー・クエリを実行するには、まずデータベース・サーバに対して接続を確立しなければならない。
メニュー・バーの[表示]−[プロパティ]を選択し、「クエリ プロパティ」を表示させてみよう。
クエリ・プロパティの設定 | |||
パススルー・クエリを実行するためには、ODBCデータソースへの接続を設定しておく必要がある。 | |||
|
最低限、設定しなければならない項目は以下のとおりである。
項目 | 概要 |
ODBC接続文字列 | データベース・サーバへの接続設定。直接に接続文字列を入力してもよいが、[...]をクリックして、GUI画面上から設定を行うと便利である。設定方法については、「TIPS―データベース・サーバのフロントエンドとしてAccessを利用する」を参照 |
レコード表示 | 結果を表示するかどうかの設定。SELECTやSHOWのように何らかの結果セット(レコード)を返すコマンドを発行する場合には[はい]を選択。CREATE TABLEのように結果を返さないコマンドについて、[はい]を選択した場合には警告メッセージを返す(エラーではない) |
そのほか、取得する最大レコード数やコマンドのタイムアウト時間を設定することも可能である。
手順4―パススルー・クエリを実行する
以上の設定ができたら、メニュー・バーから[クエリ]−[実行]を選択する。テーブルが正常に作成されたかどうかは、「TIPS―データベース・サーバのフロントエンドとしてAccessを利用する」を参考に、テーブル・リンクを行って確認してみてほしい。
もちろん、パススルー・クエリで実行できるのは、CREATE TABLE(テーブル作成)だけではない。データベース・サーバに対して発行できるコマンドのすべてを実行することができる(ただし、接続ユーザーがコマンドの実行権限を持っていることが前提である)。
だが、これらSQL命令については本題から外れてしまうため、本稿では割愛する。詳細については、@IT Master of IP Networkフォーラムの「連載 SQL実践講座」などを参考にしてほしい。
この記事と関連性の高い別の記事
- データベースサーバのフロントエンドとしてAccessを利用する(TIPS)
- AccessをMSDEのフロントエンドとして利用する(TIPS)
- WindowsでExcelと外部データベースとを連携させる(TIPS)
- PowerShellでテンプレートを使ってメールを一斉配信する(TIPS)
- これだけは覚えておきたいWindowsのコマンドプロンプトの使い方(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|