そして二つ目のメリットは、開発ツールとしてのAccessです。ODBCを設定して一度テーブルをリンクしてしまえば、クエリやフォーム、レポート、VBAなどAccessの機能がそのまま使えます。つまりAccessでユーザー側のシステムを構築することができるのです。
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】Accessの「SampleDB040Conn.mdb」を開きます。
【4】オブジェクトから「フォーム」を選択します。
【5】「新規作成」をクリックします。
【6】「フォーム ウィザード」、「t01prefecture」を選択し、「OK」ボタンをクリックします。
【7】「>>」ボタンをクリックします。
【8】フィールドがすべて選択されたことを確認し、「次へ」ボタンをクリックします。
【9】「表形式」を選択し、「次へ」ボタンをクリックします。
【10】「標準」を選択し、「次へ」ボタンをクリックします。
【11】フォーム名に「F03Prefecture」、「フォームを開いてデータを入力する」にチェックし、「完了」ボタンをクリックします。
【12】フォームが開き、MySQL側のデータが表示されました。
【13】Access側のフォームから追加、更新、削除を行い、MySQL側のデータを変更できることを確認してください。
例
SELECT * FROM T01Prefecture;
フォームで削除する場合は、削除したいレコードを選択してから、ツールバーの「レコードの削除」ボタンをクリックするか「Deleteキー」を押します。マウスで右クリックして「切り取り」でも削除できます。
【14】フォームの動作を確認したら閉じます。
このようにAccessならウィザードに従うだけで作れる単純なフォームも、Javaなどのプログラミング言語ではかなりの量のソースコードを書かなければなりません。
次は販売伝票でAccessとMySQLの連携を確認してみましょう。販売伝票は少し複雑ですので、あらかじめフォームは作成してあります。作り方は最後の「ワンポイント」をお読みください。
【15】オブジェクトのフォームで「F01Slip」を選択し、「開く」ボタンをクリックします。
【16】販売伝票フォームの画面が表示されました。
*この画面は F01Slip に F02Details が組み込まれる形になっています。
【17】販売伝票でもAccess側のフォームから追加、更新、削除を行い、MySQLのデータを変更できることを確認してください。
白いコントロールは値を変更できます。灰色はクエリの働きで自動的に表示されます。
*SLIP_DATE と CST_CD のデータは、カーソルを明細部分に移動した時か、販売伝票のレコードを移動したときに確定します。
MySQLでの確認の仕方
SELECT * FROM T07Slip;
SELECT * FROM T08Details;
*明細のレコードを新しく追加した場合は下のほうに表示されます。
【18】確認したら販売伝票フォームを閉じます。
【19】Accessのファイルを閉じます。
【20】以下の図を参考にMySQLを終了・停止します。
1.「exit」と入力し、「Enterキー」を押します。
2.「net stop mysql」と入力し、「Enterキー」を押します。
【21】コマンドプロンプトは閉じてください。
販売伝票のような画面をJavaで作るとしたら、数百から千行を超えるソースコードを書く必要があります。ユーザー側の画面をAccessで作るメリットを実感できたのではないでしょうか。
今回は取り上げませんでしたが、AccessではVBAによるプログラミングもできますので、より細かい制御ができます。Accessは開発ツールとしても重宝します。
【ワンポイント】
販売伝票は2つのクエリと2つのフォームからできています。
販売伝票フォームの作り方や仕組みはMicrosoft Access初心者入門講座で詳しく解説しています。
興味がある方は「Access クエリの使い方 中級」からご覧ください。Accessのテーブルを使うか、リンクしたMySQLのテーブルを使うかの違いだけです。試す場合はMySQLの開始をお忘れなく。