Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。今回は、Access VBAからGoogleマップへデータを引き渡す応用テクニックを紹介する。
本連載はMicrosoft Access(マイクロソフトアクセス 以下、Access)を使って、リレーショナルデータベース(RDB)やSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得するものだ。
前回は、「同じ条件に合致するレコードを1つずつ表示する」「複数の条件に合致するレコードを検索する」といったレコード処理を応用するテクニックを解説した。
今回は、Access VBAから「Googleマップ」へデータを引き渡して連携させる応用テクニックを紹介する。開発するサンプルは、テーブル内の住所情報を基に、GoogleマップのURLとして機能するようテーブル内の文字列を調整して引き渡すものだ。それを活用する一例として、データベース内の病院名をクリックするとブラウザが開き、Googleマップの特定の場所へピンが立つようにする処理を施していこう。
これまでと同様に、バックナンバーである第1回「どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは」、第2回「Access VBAでデータ入力フォームを作り、各コントロールを追加するためのデザインビューの使い方」など、過去11回までの記事で解説してきたテクニックも活用する。
なお、Accessの基本的な操作手順である、フォームやコントロールの配置の仕方、「VBE(Visual Basic Editor)」のコードエディタでプロシージャを作成する方法などについてもバックナンバーで解説している。もし、この記事から読み始めた方は、連載の第1回に戻って順に読み進めてただければ幸いだ。
Accessを起動し、「Access_GoogleMaps.accdb」というファイル名で新規デスクトップデータベースを作成する。続いてAccessメニューのデザインビューから、「病院テーブル」という名称のテーブルを作成する。データの定義画面で、ID(データ型:オートナンバー型)、病院名(データ型:短いテキスト)、住所(データ型:短いテキスト)のフィールドを設ける(図1)。
左ペインのナビゲーションウィンドウに表示された「病院テーブル」をダブルクリックすると、先ほど定義した項目が一覧表示される。この画面から何件かデータを入力しておこう(図2)。なお、ID欄は連番で自動発番されるので手動で入力する必要はない。
Accessメニューの「作成」タブから「フォームデザイン」を選び、空のフォームデザインを作成する(図3)。
フォームへ「リストボックス」を配置する。起動する「リストボックスの作成ウィザード」は、ここでは使わないのでキャンセルして閉じる。
「ラベル」と「リストボックス」の本体が配置される。このラベルを選択して、マウスの右クリックメニューから「切り取り」を選び、適当に「貼り付け」を実行する。こうすることで、「ラベル」と「リストボックス」を分離して扱えるようになる。
ラベルは、表題に「病院名」とし、書式は「フォント名=Meiryo UI」「フォントサイズ=14」「フォント太さ=太字」とする(以降、この書式設定を本稿では「標準書式」とする。また、書式は好みのものに変更しても構わない)。リストボックスは、名前を「病院名リストボックス」とし、同様に書式を設定する(図4)。フォームは、「地図表示」という名称で保存する。
Copyright © ITmedia, Inc. All Rights Reserved.