MS Access Tips/Sample and VBA and Blog customize etc...

都道府県をチェックボックスで複数選択するフォーム

下記の掲示板の質問の回答用に作成したサンプルです。

チェックボックスを用いてのデータ抽出 -つづき

都道府県選択フォーム

チェックボックスで複数の都道府県を選択して、それをクエリなどの抽出条件にしたいという要件です。

画像を見ると、非連結のチェックボックスを47個並べただけのように見えるかも知れませんが、実は、都道府県マスターテーブルと連結しています。

連結した帳票フォームだと普通に設計すると縦に47都道府県が並んでしまい使い勝手が悪いですね。かといって非連結のチェックボックス47個では、抽出条件が複雑になってしまいメンテナンス性が悪いです。

連結で、かつ、上図のようにグループ分けして表示できれば便利ですね。今回はこの方法の紹介です。

都道府県以外でも、選択肢が多い項目をグループ分けして表示するときにも使えます。都道府県はほぼ固定ですが、項目の増減があるような場合でも、連結ですのでマスターテーブルを更新するだけで対応できるというのもメリットになります。

難易度:

下記のマスターテーブルを作成します。

T_地方
地方CD地方
1北海道・東北
2関東
3信越・北陸
4東海
5近畿
6中国
7四国
8九州・沖縄
T_都道府県抽出用
都道府県CD都道府県名地方CD選択
1北海道北海道・東北
2青森県北海道・東北
3岩手県北海道・東北
4宮城県北海道・東北
・・・・・・・
・・・・・・・
46鹿児島県九州・沖縄
47沖縄県九州・沖縄

「選択」フィールドはYes/No型

クエリを新規作成して、T_都道府県抽出用 と T_地方 を追加して、地方CD で結合します。都道府県CD, 都道府県名, 選択, 地方 フィールドを表示させます。SQLでは下記のようになります。

「T_都道府県抽出用」テーブルをレコードソースとする帳票フォームを作成します。詳細セクションに、都道府県名 をテキストボックス、選択 をチェックボックスとして配置します。フォームの名前は、F_都道府県抽出用 とします。フォームの書式プロパティを下記のように設定します。。

プロパティ設定値
レコードセレクタいいえ
移動ボタンいいえ
レコードセレクタいいえ
区切り線いいえ

都道府県名 のテキストボックスのプロパティを下記のように設定します。。

プロパティ設定値
使用可能いいえ
編集ロックはい
境界線スタイル透明

別に非連結のフォームを作成して、そこにテキストボックスを配置し、下記のように設定します。

プロパティ設定値
コントロールソース="北海道・東北"
名前地方1
使用可能いいえ
編集ロックはい
境界線スタイル透明

データベースウィンドウから「F_都道府県抽出用」フォームをドラッグして、上記のテキストボックスの下にドロップします。サブフォームとして配置されます。フォームを埋め込んだコントロールのプロパティを下記のように設定します。

プロパティ設定値
リンク親フィールド地方1
リンク子フィールド地方
境界線スタイル透明

作成したテキストボックスとサブフォームコントロールを選択して、コピー、貼り付け をします。

最初に配置したテキストボックスとサブフォームの右隣に移動させます。

貼り付けたテキストボックスの設定を下記のように変更します。

プロパティ設定値
コントロールソース="関東"
名前地方2

貼り付けたサブフォームコントロールのプロパティを下記のように変更します。

プロパティ設定値
リンク親フィールド地方2
リンク子フィールド地方

同様な操作を地方の数だけくり返します。

これで冒頭の画像のフォームの完成です。

ちなみに、「T_都道府県抽出用」テーブルを抽出条件として利用するには、クエリで抽出対象のテーブルと 都道府県CD で結合します。

サンプルファイル が下記からダウンロードできます。
FrmTodoufukenSelect_07.zip (Access 2007 形式 - 28kb)
FrmTodoufukenSelect.zip (Access 2002-2003 形式 - 27kb)
FrmTodoufukenSelect_2k.zip (Access 2000 形式 - 27kb)


拍手する

2 Comments

farr says...""

突然の訪問、失礼いたします。
私はこちら⇒http://tikyuboueigun2.blog59.fc2.com/
でブログをやっているきみきといいます。
色々なブログをみて勉強させていただいています。
もしよろしかったら相互リンクをお願いできないでしょうか?
「やってもいいよ」という方はコメントを返してくだされば、
私もリンクさせていただきます。
よろしくお願いします^^

2011.04.18 02:17 | URL | #- [edit]
hatena says..."re: farrさん"

farrさん のブログを見させていただきましたが、
特に私のブログとの共通点はなさそうなんですが、

なぜに、相互リンクなのでしょうか?

2011.04.22 18:08 | URL | #5uE6dEgY [edit]

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/299-e7d04868
該当の記事は見つかりませんでした。