本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC1]コンボ ボックスの利用例 - 郵便番号の表引き機能

文書番号: 404062

最終更新日: 1998/02/03


この資料は以下の製品について記述したものです。

この記事は、以前は次の ID で公開されていました: JP404062

概要

フォームを利用する目的のひとつに、テーブルにデータを入力する操作を簡単にすることがあげられます。たとえば、マスター テーブルから抽出した複数のデータを参照するために、コンボ ボックスやリスト ボックスを利用すれば、必要なデータをリストから選ぶだけで 簡単に新規のレコードを入力することができます。Access1.1 のフォーム上でこの機能を設計する方法を郵便番号を参照するサンプルをあげて説明致します。

手順

郵便番号の表引き機能

入力した郵便番号を条件にして マスター テーブルから関連する複数の住所データを抽出し、抽出された住所データから、新規レコードとして入力したいものを選出します。選んだ 住所データは、テーブルのフィールドに連結しているテキスト ボックスに移動します。この住所データを編集しテーブルのデータとして更新します。このような機能を実現するために、次の 3 つのポイントを考慮する必要があります。

■非連結のテキスト ボックスに入力したデータを条件に抽出する方法

マスター テーブルを元にして クエリーを発行します。テキスト ボックスに入力されるデータを条件にするには、抽出したい [フィールド] 行の下の [抽出条件] 行にテキスト ボックスの参照式を設定します。参照式の記述は 後述のサンプルをご覧ください。

■マスター テーブルから抽出したデータをコンボ ボックスで 逐次参照する方法

入力するデータにあわせて コンボボックスで参照するデータを変更させるには、入力するデータが変更されるたびに クエリーを再発行する必要があります。
この処理はマクロで自動化します。

■複数レコードの中から選出したデータをテーブルのデータとして反映させる方法

コンボ ボックスにリストアップされたレコードの中から選んだデータをテーブルのフィールドに格納するためには、コンボ ボックスとフィールドを連結させるため、コンボ ボックスの [連結列] プロパティの設定をします。
次に、サンプルの操作手順を記述しましたのでご参照ください。
  1. テーブルの作成。 マスター用、データ入力用のテーブルを作成します。定義は次のようにします。
         テーブル名 : T_マスター用
           フィールド名   データ型
           -------------  ----------
           郵便番号参照   テキスト型
           住所参照       テキスト型
         テーブル名: T_入力用
           フィールド名   データ型
           -------------  ----------
           氏名           テキスト型
           郵便番号       テキスト型
           住所           テキスト型
    
  2. クエリーの作成。 コンボ ボックスの参照データを絞り込むためのクエリーを作成します。 定義は次のようにします。
           クエリー名    : Q_郵便番号
           追加テーブル  : T_マスター用
           フィールド行  :郵便番号参照                         住所参照
           テーブル名    :T_マスター用                         T_マスター用
           並び替え      :昇順
           抽出条件      :Like  Forms![住所録]![郵便番号]  &  "*"
                        (「 3. 「住所録」フォームの作成」をご覧ください。)
    
  3. 「住所録」フォームの作成。 フォーム Wizard を利用して、「 T_入力用」テーブルを元に フォームを作成し ます。
    • フォーム
              フォーム名           :住所録
              レコードソース       : T_入力用
      
    • テキスト ボックス
              コントロール名       :氏名
              コントロールソース   :氏名
      
    • テキスト ボックス
              コントロール名       :郵便番号
              コントロールソース   :郵便番号
              更新後処理           :マクロ 1 (「 4. マクロの作成」をご覧ください。)
      
    • コンボ ボックス
              コントロール名       : ComboBox
              コントロールソース   :住所
              値集合タイプ         :テーブル/クエリー
              値集合ソース         : Q_郵便番号
              列数                 : 2
              連結列               : 2
      
    • テキスト ボックス
              コントロール名       :住所
              コントロールソース   :住所
      
  4. マクロの作成。
    フォームに割り当てるマクロを作成します。
    このマクロは、「住所録」フォームの「郵便番号」テキスト ボックスにある[更新後処理] プロパティに割り当てるマクロです。目的はコンボ ボックスの参照用データのダイナセットを取得するためです。
           マクロ名       アクション
           ----------     ------------
           マクロ 1        再クエリー
           アクションの引数
           ---------------------------
           コントロール名  : ComboBox
    
  5. 作成された「住所録」フォームをフォーム ビューで開くと、次のようになります。
    [GRAPHIC: ]

注意

  • コンボ ボックスの [入力チェック] プロパティを [あり] にすると、コンボ ボックスに郵便番号の最初の数字を直接入力すると、リストが表示されているときに、自動的に該当する値が選択されるように設定できます。しかし、リストにない値をボックスに入力することができなくなります。
  • コンボ ボックスとリスト ボックスは、どちらも選択肢を表示したり、リストから値を指定するコントロールですが、リスト ボックスには 値を直接入力できません。

詳細

本文に関する操作の詳細は、次の参照先の説明をご覧ください。
  フォームの作成について
  『 Microsoft Access ユーザズ ガイド』
  • 第 3 部 フォーム 9 フォームの作成
           /リスト ボックスやコンボ ボックス内に表示する選択肢の作成 ...
                                                                 ... P273 ~ P287
    
  • 第 6 部 マクロ 22 フォームでのマクロの使用 .............. P595 ~ P602
      マクロの作成について
      『 Microsoft Access ユーザズ ガイド』
    
  • 第 6 部 マクロ 21 マクロの概要 .......................... P571 ~ P593 『 Microsoft Access リファレンス ガイド』
  • 再クエリー/Requery アクション ............................ P81 ~ P83

Keywords: KBHOWTO KB404062
Technology: kbAccessSearch

inserted by FC2 system