テーブルの構造とルックアップの設定
「人」テーブルと「都道府県」テーブルがあるとする。
「人」テーブルは「都道府県」を参照。 id は主キーで、CD は候補キー。 id はシステムがタプルを一意に識別するためのもので、CD も一意に識別することができるが人間の都合で変更の可能性がある。
「都道府県」を参照しているフィールドは、「ルックアップ」で「コンボボックス」が表示されるようにする。
クエリからフォームを作成
上記のテーブルから下記のクエリを作成。
これを元にフォームを作る。
このとき、フォームにおける「都道府県」の入力は CD (コード) でしようと考えていたので、「あれ? id を入力しなくていけないかな?どうしよう… (@_@;) 」と思ったけれど、上記の通り「人」テーブルの「都道府県id」フィールドには「ルックアップ」が設定されているので、id の入力をあたかも CD を入力してるかのようにフォームのコンボボックスで入力できる。
リスト外入力時のイベント
さて、ここで「都道府県」テーブルにない CD を入力しようとすると、
指定した項目はリストにありません。
とメッセージが表示される。
このメッセージではユーザにとってわかりにくいので変更したい。
コンボボックスのプロパティより「イベント > リスト外入力時」の VBA を記述する。
Private Sub 都道府県id_NotInList(NewData As String, Response As Integer) Response = acDataErrContinue MsgBox "存在しない都道府県コードです" End Sub
引数 Response の設定で先ほどのメッセージを抑制して、新たにメッセージを表示する。
参考
- はじめて作るAccessアプリケーション, p108
0コメント:
コメントを投稿