複数列のコンボ ボックスの選択をテキスト ボックスに設定する方法

中程度: 基本的なマクロ、コーディング、相互運用性のスキルが必要です。

この記事は、Microsoft Access データベース (.mdb) と Microsoft Access プロジェクト (.adp) に適用されます。

概要

この記事では、複数列のコンボ ボックスで行われた選択内容を複数のテキスト ボックスに設定し、テキスト ボックスの内容を 1 つのレコードとしてテーブルに保存する方法について説明します。

詳細

注意

この例の手順に従う場合は、サンプル データベースのNorthwind.mdbを変更します。 Northwind.mdb ファイルをバックアップし、データベースのコピーに関する次の手順に従います。

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。 これには、市販性または特定の目的との適合性についての黙示の保証も含まれますが、これに限定はされません。 この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。 マイクロソフト サポート窓口では、特定のプロシージャの機能説明に関するご質問に対して支援いたしますが、本例を特定の目的を満たすために機能を追加したり、プロシージャを構築することは行いません。 複数列のコンボ ボックスで選択したテキスト ボックスを更新するには、次の手順に従います。

  1. サンプル データベース Northwind.mdbを開きます。

  2. 次のフィールドを含む新しいテーブルをNorthwind.mdbに作成します。

    Table: Table1
    ----------------------
    Field Name: ID
    Data Type: Autonumber
    Primary Key
    ---
    Field Name: FirstName
    Data Type: Text
    ---
    Field Name: LastName
    Data Type: Text
    ---
    Field Name: Title
    Data Type: Text
    
  3. 次のコントロールを含む新しいフォームをNorthwind.mdbに作成します。

    Form: Form1
    ----------------------
    RecordSource: Table1
    ---
    Control Type: Text Box
    Name: txtFirstName
    ControlSource: FirstName
    ---
    Control Type: Text Box
    Name: txtLastName
    ControlSource: LastName
    ---
    Control Type: Text Box
    Name: txtTitle
    ControlSource: Title
    
  4. Form1 にコンボ ボックスを追加します。 コンボ ボックス ウィザードで、次の手順に従います。

    1. [コンボ ボックスでテーブルまたはクエリの値を検索する] をクリックし、[次へ] をクリックします。
    2. [テーブル: 従業員] をクリックし、[次へ] をクリックします。
    3. [使用可能なフィールド] ボックスの一覧から [選択されたフィールド] リストに LastName、FirstName、および Title フィールドを移動するには、各フィールドを選択し、ボタンを > クリックします。 [次へ] をクリックします。
    4. [次へ] をクリックし、[ 後で使用するために値を記憶する] をクリックし、[次へ] をクリックします。
    5. [ コンボ ボックスに必要なラベル] ボックス に「選択」と入力し、[完了] をクリックします。
  5. 手順 4 で作成したコンボ ボックスを右クリックし、[ プロパティ] をクリックします。

  6. [その他] タブをクリックし、[名前] ボックスに「cboNames」と入力します。

  7. [イベント] タブをクリックし、[更新後] イベント ボックスをクリックし、[ビルド (...)] ボタンをクリックします。

  8. [コード ビルダー] をクリックし、[OK] をクリックします。

  9. Visual Basic エディターで、次のコードを入力します。

Private Sub cboNames_AfterUpdate()
   Me.txtFirstName = Me![cboNames].column(1)
   Me.txtLastName = Me![cboNames].column(2)
   Me.txtTitle = Me![cboNames].column(3)
End Sub

  1. Visual Basic エディターを終了し、フォーム ビューで Form1 フォームを開きます。
  2. コンボ ボックス内の項目をクリックし、[次のレコード] をクリックします。 保存するレコードごとにこの手順を繰り返します。
  3. テーブル ビューで Table1 を開き、新しいレコードが保存されていることを確認します。 コンボ ボックス内の項目をクリックすると、AfterUpdate プロパティによって、フォーム上の 3 つのテキスト ボックスを設定するイベント プロシージャが実行され、新しいレコードが Table1 に追加されることに注意してください。