Microsoft Access Club >AccessTips >このページ >次頁 <前項  サイト内検索


コンボボックスの値リストに"すべて選択"機能を付加する : AccessTips128



コンボボックスを用いる際に"すべて選択"機能を付加する方法を「参考ファイル」のNo30でご紹介しました。これは、値集合ソースにクエリを用いて、任意の位置に"すべて選択"の語句を配置するものでしたが、今回は値リストを用いてこれを実現する方法をご紹介します。

サンプルテーブル

以下のようなフィールドを持つサンプルテーブル(tbl_sample)を作成します。

得意先コード 得意先名 担当者名
0001 喫茶順 林  千春
0002 小料理なんごく 河本 なみ
0003 割烹ふじい 山久 良美
0004 海鮮料理くじら 和辺 義隆
0005 居酒屋ななべえ 渡川 秀人

サンプルフォームの作成

単票式のサンプルフォーム(frm_sample)を作成します。

コンボボックスの新規作成

  1. コンボボックス(得意先の選択)を作成します。
  2. 値集合ソースに 値リスト を指定します。
  3. 値集合ソースに以下のリストを書き込みます。

"喫茶順";"小料理なんごく";"割烹ふじい";"海鮮料理くじら";"居酒屋ななべえ"

  1. このリストは、tbl_sample の得意先名フィールドにあるデータです。
  2. 以下のように、"すべて選択"を一番最初に記述します。

"すべて選択";"喫茶順";"小料理なんごく";"割烹ふじい";"海鮮料理くじら";"居酒屋ななべえ"

コンボボックスの更新後処理イベントプロシージャの作成

更新後処理イベントに以下のプロシージャを記述します。

Private Sub 得意先の選択_AfterUpdate()
    
    'コンボボックスで選択された値に対応するレコードを返します。
    If Me.ActiveControl.Column(0) = "すべて選択" Then ' --- A
        DoCmd.ShowAllRecords
    Else
        DoCmd.ApplyFilter , "得意先名 = '" & Me.ActiveControl.Column(0) & "'"
    End If
   
End Sub
解説

すべて選択をユーザーが選択した場合、更新後処理イベントにその値が返されます。それを受けて、If構文で処理を分岐しています。

  1. ActiveControlコントロールは、コンボボックス自体をさします。現在、フォーカスのあるコントロールと言う意味です。

フォームを開くイベントプロシージャの作成

フォームを開いたときにデータを非表示にするために、Filterプロパティを用いて空白値でソートさせています。

Private Sub Form_Open(Cancel As Integer)

        DoCmd.ApplyFilter , "得意先名 = ''"

End Sub

フォームビューで開く

  1. フォームをビューモードで開き、小料理なんごく を選択します。

  1. コンボボックスをクリックします。

  1. すべて選択 をクリックします。

関連ページ

2005/06/05

ページの先頭へ 前ページへ戻る

 


コンボボックスの値リストに"すべて選択"機能を付加する : AccessTips128


 

-Microsoft Access Club-