そこで今回は、Access側からMySQL用のSQL文を送信できる、「パススルークエリ」について解説します。
パススルークエリの使い方がわかれば、Accessの使いやすさとMySQLの高機能のいいとこどりができます。
【1】以下の図を参考にMySQLを開始・接続します。
1.コマンドプロンプトを起動します。
2.「net start mysql」と入力し、「Enterキー」を押します。
3.「mysql -u pgtop -p -b」と入力し、「Enterキー」を押します。
4.パスワードを求められるので「12345」入力し、「Enterキー」を押します。
*「-b」オプションを付けて起動するとビープ音が出なくなります。
【2】以下のSQL文を入力し、使用するデータベースを選択します。
USE SampleDB040;
【3】「SampleDB040Conn.mdb」を開きます。
【4】オブジェクトで「クエリ」をクリックします。
【5】「SQL練習」を選択し、「デザイン」をクリックします。
【6】「SQLビュー」を選択します。
【7】SQLビューが表示されました。
最初はわざと「選択クエリ」で、MySQL用のSQL文を入力してみます。
【8】以下のSQL文を入力します。
SELECT * FROM T01Prefecture LIMIT 5;
*LIMIT はAccessでは使えないのでエラーになります。
【9】「!」(実行)ボタンをクリックします。
【10】構文エラーが表示されるので、「OK」ボタンをクリックします。
今度はパススルークエリに変えてみましょう。
【11】メニューから「クエリ → SQL → パススルー」を選択します。
【12】パススルークエリに変わりました。
【13】もう一度「!」(実行)ボタンをクリックします。
【14】「データソースの選択」ダイアログボックスが表示されたら、「コンピュータデータソース」タブをクリックします。
【15】「SampleDB040」を選択して、「OK」ボタンをクリックします。
【16】SQL文の実行結果が表示されました。
【17】SQLビューを閉じます。
【18】閉じる時にメッセージが表示されたら、「いいえ」ボタンをクリックしてください。
【19】Accessのファイルを閉じます。
【20】以下の図を参考にMySQLを終了・停止します。
1.「exit」と入力し、「Enterキー」を押します。
2.「net stop mysql」と入力し、「Enterキー」を押します。
【21】コマンドプロンプトを閉じてください。
【解説】
パススルークエリを使うと、Access側から MySQL の命令が使えることがわかりました。パススルークエリでは、SQL文を Accessで解釈せずに、直接MySQLにSQL文が送信されます。
前回説明した「選択クエリ」と「パススルークエリ」の違いを理解して、使い分けるとシステムを開発する時に便利です。