メールマガジン【アクセスで作るシリーズ】
バックナンバー 【住所録ソフト編】 Vol.5
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2001.11. 3 Vol.5
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回はコンボボックスに焦点を当てて解説を行います。
______________________________________
□ コンボボックスの色々なパターンを作成する
前回作成したフォームの敬称コンボボックスを使用して、色々なパターンを作って
みましょう。
前回作成した、敬称コンボボックスの一覧データは固定値になっています。
一覧の内容は「様」「殿」「御中」「行」「宛」「様方」「先生」「君」「ちゃん」
でした。
★ 一覧にあるデータ意外を入力不可にする。
では、まず最初に敬称フィールドを、この「様」~「ちゃん」の9個の値意外は
入力できないフィールドにしてみましょう。
敬称コンボボックスを選択した状態で[入力チェック]プロパティを[はい]にしま
す。
これで、フォームを開いて実際に敬称フィールドに入力してみましょう。
「様」を選択、または入力しても大丈夫ですが、「あ」と入力すると「指定した
項目はリストにありません。」というメッセージが出て入力できませんね。
この様に、特定の値しか入力させたく場合は[入力チェック]プロパティを使用
します。
★ 一覧にあるデータ意外も入力可能にする。(サンプルで敬称に採用)
では、先程の敬称コンボボックスの[入力チェック]プロパティを[いいえ]に戻し
ます。
そして、先程の様にフォームを開いて敬称フィールドに何か入力してみましょう。
今度は「あ」と入力しても「指定した項目はリストにありません。」という
メッセージは出ません。
「あ」もちゃんとテーブルに登録されます。
★ 一覧のデータをテーブルを元にする。(サンプルで役職と分類で採用)
「様」「殿」「御中」「行」「宛」「様方」「先生」「君」「ちゃん」にない
敬称をコンボボックスの一覧に追加したくなった時、もちろんフォームをデザイ
ンで開いて敬称コンボボックスの[値集合ソース]プロパティに追加しても構いま
せんが、ちょっと面倒くさいですね。
そこで、敬称フィールドに一度入力したデータが一覧表示される様なコンボ
ボックスを作成してみましょう。
【会計ソフト編】をご購読いただいた方は、仕訳入力の摘要コンボボックスを
思い出して下さい。
設定手順は以下の通りです。
1.敬称コンボボックスを選択し、[値集合タイプ]プロパティを[テーブル/
クエリー]にします。
2.[値集合ソース]プロパティを[AddressTable]にして右端の[...]ボタンを
押下します。
3.「テーブルを元にしてクエリービルダーが起動されました」のメッセージが
表示されるので[はい]を選択しクエリービルダーを開きます。
4.クエリービルダーの上段に[AddressTable]が表示されている事を確認したら
[Honor]フィールドをダブルクリックします。
すると下段に[Honor]フィールドが表示されます。
5.クエリービルダーの右上の[×]ボタンを押下し、クエリーを保存して終了
します。
これで、敬称コンボボックスの一覧は、敬称フィールドに入れた値がどんどん
追加されていきます。
但し、このままでは2点ほど問題点があります。
まず、第一点はコンボボックスの一覧の内容が、フォームを一度閉じないと更新
されない。
そして、第2点目は同一データが登録された分、全て一覧に表示されてしまう。
では、どういう現象か確認してみましょう。
フォームを開いて、敬称フィールドに「様」と入力し、次のレコードへ移動し
同じく敬称フィールドに「宛」と入力します。
そして、また次のレコードへ移動して今度も「様」と入力してみましょう。
また、この時、コンボボックスを開いても一覧には何も表示されません。
(これはデータが登録されていない場合の話です)
では一度フォームを閉じて、再び開き直して見ます。
敬称コンボボックスを開くと「様」「宛」「様」と3つのデータが一覧表示され
ましたね。
では、2つの問題点を直していきましょう。
まず、1点目のフォームを開き直さないと一覧が更新されない問題です。
原因は、敬称フィールドにデータを登録しても、敬称コンボボックスの[値集合
ソース]プロパティに設定したクエリーは更新されないからです。
そこで、敬称コンボボックスがフォーカスを得た時(カーソルが来た時)に
この敬称コンボボックスのクエリーを更新する事にしましょう。
設定手順は以下の通りです。
1.敬称コンボボックスを選択し、[フォーカス取得時]プロパティにカーソルを
移動し、[イベントプロシージャ]を選択して右端の[...]ボタンを押下します。
2.クラスモジュールウィンドウが開いたら Private Sub Honor_Enter() と
End Sub の間に Honor.Requery と入力しましょう。
Private Sub Honor_Enter()
Honor.Requery
End Sub
こんな感じになります。
3.クラスモジュールウィンドウの右上の[×]ボタンを押下しクラスモジュール
ウィンドウを閉じます。
これでコンボボックスの一覧は更新される様になりました。
次に敬称コンボボックスの一覧データの重複データを1つにします。
これは、先程の[値集合ソース]プロパティに設定したクエリーで同一データを
1つにまとめる様に設定します。
設定手順は以下の通りです。
1.敬称コンボボックスを選択し、[値集合ソース]プロパティにカーソルを移動
したら、右端の[...]ボタンでクエリービルダーを開きます。
(今回は「テーブルを元にしてクエリービルダーが起動されました」のメッ
セージは表示されません)
2.次に上段の[AddressTable]テーブルの横のグレーの部分をクリックします。
(この時プロパティーウィンドウのタイトルが[クエリー プロパティ]と
なっている事を確認しましょう)
3.[クエリー プロパティ]ウィンドウの[固有の値]プロパティを[はい]にしま
しょう。
4.クエリービルダーの右上の[×]ボタンを押下し、クエリーを保存して終了
します。
これで、重複データは一覧表示されなくなります。
では、フォームを保存したら開いて確認してみましょう。
敬称コンボボックスを開くと、前は「様」「宛」「様」と3つのデータが一覧に
表示されていましたが、今度は「様」と「宛」の2つになっていますね。
では、新規レコードへ移動して、今度は「ちゃん」と入力してみましょう。
そして、次のレコード(新規レコード)へ移動して敬称コンボボックスを開くと
今度は、「様」「宛」「ちゃん」の3つのデータが一覧表示されます。
フォームを開き直す必要が無くなりましたね。
※ もちろん、この場合、敬称コンボボックスの[入力チェック]プロパティは
[いいえ]でなければいけません。
★ 最初に幾つかのデータが一覧表示されて、一覧に無いデータが入力された時は
一覧に追加される。
先程の一覧に追加されていく方法は、一度は入力(使用)されないと一覧に表示
されません。
例えば、「様」「殿」「御中」「行」「宛」「様方」「先生」「君」「ちゃん」
の9つは最初から一覧に表示されていて、それ以外のデータを入力した場合は
一覧に追加されていくと言う事もできます。
その方法は、[値集合ソース]プロパティにユニオンクエリーというクエリーを
使用するのですが、これを説明するのは、かなりのボリュームなので、また今度
にしたいと思います。
※ お仕事等で、どうしてもこのコンボボックスを作りたい言う方へ。
ユニオンクエリーを知っていると言う方のみ、個別のメールにて対応します。
この様に、コンボボックスには、設定の方法で色々なパターンが作れます。
最初の「一覧にあるデータ意外を入力不可にする」は、想定していないデータが入力
されると困る様なフィールドに適しています。
次の「一覧にあるデータ意外も入力可能にする」は、入力されるデータは特に制限は
無く、ただ頻繁に入力するデータは一覧から選択できる、入力補助的な使い方です。
3番目の「一覧のデータをテーブルを元にする」も、一度入力したデータは次からは
一覧から選択できる、入力補助的な使い方ですが、2番目との大きな違いは、一度
入力したデータは、2度と使わない様なデータでも常に一覧に表示されると言うこと
です。
それに比べ2番目のコンボボックスでは、頻繁に使うと想定したものだけが一覧に
表示されます。
住所録フォームも「役職」「敬称」「分類」と3つのコンボボックスがありますが、
それぞれに、どのコンボボックスが使いやすいか、皆さんの好みで選んで見て下さい。
今回はここまでです。
次回は、皆さんのご要望により、宛名印刷の仕様を考えてみましょう。
______________________________________
□ お知らせ
★ 宛名印刷の仕様について
現在、宛名印刷に関する仕様のご要望をメールにて頂いております。
その中の幾つかを掲示板の方へ書いておきますので、是非一度ご覧下さい。
それに対するご意見等を書き込んで頂ければ嬉しく思います。
仕様、要望に関しまして、メールを頂いておりますが、出来る限り掲示板の
方へ書き込んで頂きますよう、よろしくお願いいたします。
★ 質問について
読者の皆様から、色々な質問等のメールを頂いております。
その中で、ごく少数の方々ですが、標題も無く、メールマガジンに関する質問
である事等、何も書かずにいきなり質問を書かれてこられる方がいらっしゃい
ます。
その場合、以下の様な理由により、返事が遅れますので、大変恐縮ではござい
ますが、何処かにメールマガジンに関する質問(要望等)である事を明記して
頂きますよう、よろしくお願いいたします。
理由
1.毎日多数のメールを頂きますので、要件が明確で無いメールは取りあえず
後回しになります。
2.仕事上、アクセスを使用しております関係で、類似したメールが多数あり
そちらに紛れ込んでしまう事があります。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :fukud@nifty.com
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://homepage2.nifty.com/f-soft/
◇ 登録・解除 :http://homepage2.nifty.com/f-soft/
Copyright(C) 2001 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ACCESSで作るシリーズ 【住所録ソフト編】
発 行 : Yoshihisa Fukuda 2001.11. 3 Vol.5
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
--------------------------------------
今回はコンボボックスに焦点を当てて解説を行います。
______________________________________
□ コンボボックスの色々なパターンを作成する
前回作成したフォームの敬称コンボボックスを使用して、色々なパターンを作って
みましょう。
前回作成した、敬称コンボボックスの一覧データは固定値になっています。
一覧の内容は「様」「殿」「御中」「行」「宛」「様方」「先生」「君」「ちゃん」
でした。
★ 一覧にあるデータ意外を入力不可にする。
では、まず最初に敬称フィールドを、この「様」~「ちゃん」の9個の値意外は
入力できないフィールドにしてみましょう。
敬称コンボボックスを選択した状態で[入力チェック]プロパティを[はい]にしま
す。
これで、フォームを開いて実際に敬称フィールドに入力してみましょう。
「様」を選択、または入力しても大丈夫ですが、「あ」と入力すると「指定した
項目はリストにありません。」というメッセージが出て入力できませんね。
この様に、特定の値しか入力させたく場合は[入力チェック]プロパティを使用
します。
★ 一覧にあるデータ意外も入力可能にする。(サンプルで敬称に採用)
では、先程の敬称コンボボックスの[入力チェック]プロパティを[いいえ]に戻し
ます。
そして、先程の様にフォームを開いて敬称フィールドに何か入力してみましょう。
今度は「あ」と入力しても「指定した項目はリストにありません。」という
メッセージは出ません。
「あ」もちゃんとテーブルに登録されます。
★ 一覧のデータをテーブルを元にする。(サンプルで役職と分類で採用)
「様」「殿」「御中」「行」「宛」「様方」「先生」「君」「ちゃん」にない
敬称をコンボボックスの一覧に追加したくなった時、もちろんフォームをデザイ
ンで開いて敬称コンボボックスの[値集合ソース]プロパティに追加しても構いま
せんが、ちょっと面倒くさいですね。
そこで、敬称フィールドに一度入力したデータが一覧表示される様なコンボ
ボックスを作成してみましょう。
【会計ソフト編】をご購読いただいた方は、仕訳入力の摘要コンボボックスを
思い出して下さい。
設定手順は以下の通りです。
1.敬称コンボボックスを選択し、[値集合タイプ]プロパティを[テーブル/
クエリー]にします。
2.[値集合ソース]プロパティを[AddressTable]にして右端の[...]ボタンを
押下します。
3.「テーブルを元にしてクエリービルダーが起動されました」のメッセージが
表示されるので[はい]を選択しクエリービルダーを開きます。
4.クエリービルダーの上段に[AddressTable]が表示されている事を確認したら
[Honor]フィールドをダブルクリックします。
すると下段に[Honor]フィールドが表示されます。
5.クエリービルダーの右上の[×]ボタンを押下し、クエリーを保存して終了
します。
これで、敬称コンボボックスの一覧は、敬称フィールドに入れた値がどんどん
追加されていきます。
但し、このままでは2点ほど問題点があります。
まず、第一点はコンボボックスの一覧の内容が、フォームを一度閉じないと更新
されない。
そして、第2点目は同一データが登録された分、全て一覧に表示されてしまう。
では、どういう現象か確認してみましょう。
フォームを開いて、敬称フィールドに「様」と入力し、次のレコードへ移動し
同じく敬称フィールドに「宛」と入力します。
そして、また次のレコードへ移動して今度も「様」と入力してみましょう。
また、この時、コンボボックスを開いても一覧には何も表示されません。
(これはデータが登録されていない場合の話です)
では一度フォームを閉じて、再び開き直して見ます。
敬称コンボボックスを開くと「様」「宛」「様」と3つのデータが一覧表示され
ましたね。
では、2つの問題点を直していきましょう。
まず、1点目のフォームを開き直さないと一覧が更新されない問題です。
原因は、敬称フィールドにデータを登録しても、敬称コンボボックスの[値集合
ソース]プロパティに設定したクエリーは更新されないからです。
そこで、敬称コンボボックスがフォーカスを得た時(カーソルが来た時)に
この敬称コンボボックスのクエリーを更新する事にしましょう。
設定手順は以下の通りです。
1.敬称コンボボックスを選択し、[フォーカス取得時]プロパティにカーソルを
移動し、[イベントプロシージャ]を選択して右端の[...]ボタンを押下します。
2.クラスモジュールウィンドウが開いたら Private Sub Honor_Enter() と
End Sub の間に Honor.Requery と入力しましょう。
Private Sub Honor_Enter()
Honor.Requery
End Sub
こんな感じになります。
3.クラスモジュールウィンドウの右上の[×]ボタンを押下しクラスモジュール
ウィンドウを閉じます。
これでコンボボックスの一覧は更新される様になりました。
次に敬称コンボボックスの一覧データの重複データを1つにします。
これは、先程の[値集合ソース]プロパティに設定したクエリーで同一データを
1つにまとめる様に設定します。
設定手順は以下の通りです。
1.敬称コンボボックスを選択し、[値集合ソース]プロパティにカーソルを移動
したら、右端の[...]ボタンでクエリービルダーを開きます。
(今回は「テーブルを元にしてクエリービルダーが起動されました」のメッ
セージは表示されません)
2.次に上段の[AddressTable]テーブルの横のグレーの部分をクリックします。
(この時プロパティーウィンドウのタイトルが[クエリー プロパティ]と
なっている事を確認しましょう)
3.[クエリー プロパティ]ウィンドウの[固有の値]プロパティを[はい]にしま
しょう。
4.クエリービルダーの右上の[×]ボタンを押下し、クエリーを保存して終了
します。
これで、重複データは一覧表示されなくなります。
では、フォームを保存したら開いて確認してみましょう。
敬称コンボボックスを開くと、前は「様」「宛」「様」と3つのデータが一覧に
表示されていましたが、今度は「様」と「宛」の2つになっていますね。
では、新規レコードへ移動して、今度は「ちゃん」と入力してみましょう。
そして、次のレコード(新規レコード)へ移動して敬称コンボボックスを開くと
今度は、「様」「宛」「ちゃん」の3つのデータが一覧表示されます。
フォームを開き直す必要が無くなりましたね。
※ もちろん、この場合、敬称コンボボックスの[入力チェック]プロパティは
[いいえ]でなければいけません。
★ 最初に幾つかのデータが一覧表示されて、一覧に無いデータが入力された時は
一覧に追加される。
先程の一覧に追加されていく方法は、一度は入力(使用)されないと一覧に表示
されません。
例えば、「様」「殿」「御中」「行」「宛」「様方」「先生」「君」「ちゃん」
の9つは最初から一覧に表示されていて、それ以外のデータを入力した場合は
一覧に追加されていくと言う事もできます。
その方法は、[値集合ソース]プロパティにユニオンクエリーというクエリーを
使用するのですが、これを説明するのは、かなりのボリュームなので、また今度
にしたいと思います。
※ お仕事等で、どうしてもこのコンボボックスを作りたい言う方へ。
ユニオンクエリーを知っていると言う方のみ、個別のメールにて対応します。
この様に、コンボボックスには、設定の方法で色々なパターンが作れます。
最初の「一覧にあるデータ意外を入力不可にする」は、想定していないデータが入力
されると困る様なフィールドに適しています。
次の「一覧にあるデータ意外も入力可能にする」は、入力されるデータは特に制限は
無く、ただ頻繁に入力するデータは一覧から選択できる、入力補助的な使い方です。
3番目の「一覧のデータをテーブルを元にする」も、一度入力したデータは次からは
一覧から選択できる、入力補助的な使い方ですが、2番目との大きな違いは、一度
入力したデータは、2度と使わない様なデータでも常に一覧に表示されると言うこと
です。
それに比べ2番目のコンボボックスでは、頻繁に使うと想定したものだけが一覧に
表示されます。
住所録フォームも「役職」「敬称」「分類」と3つのコンボボックスがありますが、
それぞれに、どのコンボボックスが使いやすいか、皆さんの好みで選んで見て下さい。
今回はここまでです。
次回は、皆さんのご要望により、宛名印刷の仕様を考えてみましょう。
______________________________________
□ お知らせ
★ 宛名印刷の仕様について
現在、宛名印刷に関する仕様のご要望をメールにて頂いております。
その中の幾つかを掲示板の方へ書いておきますので、是非一度ご覧下さい。
それに対するご意見等を書き込んで頂ければ嬉しく思います。
仕様、要望に関しまして、メールを頂いておりますが、出来る限り掲示板の
方へ書き込んで頂きますよう、よろしくお願いいたします。
★ 質問について
読者の皆様から、色々な質問等のメールを頂いております。
その中で、ごく少数の方々ですが、標題も無く、メールマガジンに関する質問
である事等、何も書かずにいきなり質問を書かれてこられる方がいらっしゃい
ます。
その場合、以下の様な理由により、返事が遅れますので、大変恐縮ではござい
ますが、何処かにメールマガジンに関する質問(要望等)である事を明記して
頂きますよう、よろしくお願いいたします。
理由
1.毎日多数のメールを頂きますので、要件が明確で無いメールは取りあえず
後回しになります。
2.仕事上、アクセスを使用しております関係で、類似したメールが多数あり
そちらに紛れ込んでしまう事があります。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
◇ ACCESSで作るシリーズ 【住所録ソフト編】
◇ 発 行 元 :Yoshihisa Fukuda(福田 義久)
◇ ご意見・ご要望
ご質問等 :fukud@nifty.com
◇ このメールマガジンは、インターネットの本屋さん『まぐまぐ』を利用して発行
しています。(まぐまぐID:0000077071)
◇ バックナンバー:http://homepage2.nifty.com/f-soft/
◇ 登録・解除 :http://homepage2.nifty.com/f-soft/
Copyright(C) 2001 Yoshihisa Fukuda All rights reserved.
◇転載について
このメールマガジンの無断転載などは、一切禁止です。
転載をご希望の方は、事前にメールで連絡をください。
◇免責
このメールマガジン及びホームページの内容による、いかなる損害、障害などに
関して発行者は一切の責任を負いません。
掲載広告についても同様です。
______________________________________
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□