Access: コンボ ボックスの列プロパティを使用して、テキスト ボックスを更新する方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:209738
警告:、基本的なマクロ、コーディング、および相互運用性のスキルが必要です。

この資料では、デスクトップ データベース (.mdb ファイルおよび .accdb ファイル) と Microsoft Access プロジェクト (.adp) に適用されます。

概要
これらのフィールドがフォームまたはレポートに連結されていないテーブルから取得するときにも、コンボ ボックスまたはリスト ボックス、フォームかレポートに複数のフィールドを表示できます。新しい情報に基づき、ユーザーがコンボ ボックスまたはリスト ボックスから選択、テキスト ボックスなどのコントロールを更新することもできます。
詳細
「概要」セクションに記載されているタスクを実行するには、これらの手法のいずれか手順に従います。
  • フォームの方法 1: 使用オートルック アップします。
  • 方法 2: は、テキスト ボックス コントロールを新しい情報で更新するのには、複数列のコンボ ボックスのプロパティを使用します。
  • 方法 3: は、フォームおよびレポートの複数のDLookup()関数を使用します。

方法 1: フォームで自動参照を使用します。

新しいレコードの特定フィールドの値が自動的に入力し、コンボ ボックスの値集合ソースとしてクエリを使用して複数テーブル クエリをデザインすることができます。クエリ、またはフォームやクエリに基づくレポートでは、結合フィールドの値を入力すると、Microsoft Access を検索し、その値に関連する既存の情報を格納します。たとえば、顧客テーブルと [受注] テーブル (通常、顧客 id、顧客 ID など) の間の結合フィールドの値がわかっている場合でした顧客 ID を入力し、アクセスできるその顧客の情報の残りの部分を入力してください。一致する情報が見つからない場合は、他のレコードにフォーカスが移ったときにエラー メッセージが表示されます。自動参照が機能する、特定の条件を満たす必要があります。

  • 複数のテーブルに基づいて、クエリする必要があり。、テーブルに一対多リレーションシップがある必要があります。
  • リレーションシップの「一」側の結合フィールドには、一意なインデックスが必要です。
  • デザイン グリッドに追加する結合フィールドを一対多リレーションシップの「多」側のテーブルからなりません。(つまり、それはそのテーブルの外部キー) です。オートルック アップをするのには、このフィールドが主キーにすることはできず、インデックス付きプロパティを [はい (重複なし) を送信できません。たとえば、Customers と Orders テーブルを含むクエリで、デザイン グリッドにドラッグ [得意先コード] フィールド、[受注] テーブル、[得意先] テーブルから ID ではないからです。
  • 「多」側の結合フィールドに入力した値は、「一」側の結合フィールドに存在しなければなりません。
データを更新するとします。

リレーションシップの「多」側の結合フィールドの値が追加されるか、レコードの変更、アクセスは自動的に検索し、リレーションシップの「一」側のテーブルから関連する値が表示されます。

常に、リレーションシップの「多」側の結合フィールドを更新することができますが、テーブル間のリレーションシップを定義する場合、連鎖更新を有効にした場合にのみ、「一」側の結合フィールドを更新することができます。どちらにしても、データを更新するときにアクセス自動的に再計算の合計または更新されたデータに依存するクエリ内の式。

方法 2: コンボ ボックスの列プロパティを使用してください。

によってテキスト ボックスに複数列のコンボ ボックスまたはリスト ボックスののプロパティを割り当てると、テキスト ボックスに現在のコンボ ボックスの選択から 1 つの列を表示できます。コンボ ボックスから選択を行ったときに、テキスト ボックスが自動的に更新します。これを行うには、次の手順を実行します。
  1. サンプル テンプレートの Northwind データベースを開きます。
  2. フォームまたは適切なテーブルまたはクエリに基づいてレポートを作成します。
  3. 詳細の 2 つのフィールドから情報を取得するリスト ボックス、コンボ ボックスを追加します。

    などのカテゴリの表にいくつかの列からの情報を表示するのにコンボ ボックスまたはリスト ボックスの値集合ソースプロパティとして次複数の列の Selectステートメントを使用する可能性があります。
    [社員] を選択します。[ID]、[社員] です。[最後の名前]、[社員] です。[役職]従業員が注文で [社員] です。[姓]
    この例では、 ColumnCountプロパティを 3 に設定し、コンボ ボックスまたはリスト ボックスの適切なサイズに列幅のプロパティを設定します。コンボ ボックスまたはリスト ボックスのサイズは適正に複数のフィールドを返す anddefined 後、は、テキスト ボックス コントロールの現在の選択範囲を表示するのにのプロパティを使用できます。最初のリスト ボックスで 1 つのエントリを選択します。それ以外の場合、 Nullを返します。

    Columnプロパティでは、参照の引数を使用して、複数列のコンボ ボックスまたはリスト ボックスの特定の列を参照してください。Column (0) を使用して、最初の列では、2 番目の列を参照するために Column(1) を参照してください。

    この例では、Column(1) を使用して、 [姓]、[コンボ ボックスの 2 番目の列を参照してください。
  4. 現在のコンボ ボックスの選択の[姓]列を表示するには、テキスト ボックス コントロールを作成します。テキスト ボックス、テキスト ボックスのコントロール ソースとして次の式を定義することでの演算コントロールを作成します。
    =[cboControlName].Column(1)
    場所 cboControlName コンボ ボックスの名前です。プロパティは、読み取り専用テキスト ボックス (演算コントロール) です。

方法 3: コントロールで DLookup を使用します。

ノースウィンド サンプル データベースで非連結フォームを作成し、 cboEmployeeLookuptxtJobTitleLookupと呼ばれるテキスト ボックスという名前のコンボ ボックスを追加します。
   In Northwind.mdb in Access 2003 or earlier:   Object: Combo Box   -------------------------------            Name: cboEmployeeLookup   RowSourceType: Table/Query ("Table/View/StoredProc" in Access project)       RowSource: Employees     ColumnCount: 2    ColumnWidths: 1     BoundColumn: 1    DefaultValue: 1   Object: Text Box   -------------------------------            Name: txtLastNameLookup   ControlSource: =DLookup("[LastName]","Employees","[EmployeeID]="                          & [cboEmployeeLookup])   			   In the Northwind Template database in Access 2007 or Access 2010:    Object: Combo Box    -------------------------------             Name: cboEmployeeLookup    RowSourceType: Table/Query ("Table/View/StoredProc" in Access project)        RowSource: Employees      ColumnCount: 3     ColumnWidths: 0";0";1"      BoundColumn: 1     DefaultValue: 1     Object: Text Box     -------------------------------              Name: txtJobTitleLookup     ControlSource: =DLookup("[Job Title]","Employees","[ID]=" & [cboEmployeeLookup])     
CboEmployeeLookupコンボ ボックスで、従業員の値を選択すると、[ txtJobTitleLookup ] テキスト ボックスに入力されますに注意してください。

関連情報

警告: この記事は自動翻訳されています

プロパティ

文書番号:209738 - 最終更新日: 10/01/2015 03:01:00 - リビジョン: 2.0

Microsoft Access 2000 Standard Edition, Microsoft Access 2002 Standard Edition, Microsoft Office Access 2003, Microsoft Office Access 2007, Microsoft Access 2010, Microsoft Access 2013, Access 2016

  • kbhowto kbinfo kbusage kbmt KB209738 KbMtja
フィードバック