Accessのフォームでコンボボックスの2列目の値を取得する方法です。
コンボボックスの更新後処理の[マクロビルダー]か、[コードビルダー]で設定します。
参考ここでは、ウィンドウの表示は[ウィンドウを重ねて表示する]の設定にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
この記事の目次
テーブルの確認
商品テーブル[T_商品]のフィールドは、以下のように[商品ID]、[商品]、[単価]となっています。
売上テーブル[T_売上]は以下のようになっています。
参考データ型の[集計]はAccess2010からの機能です。
-
テーブルのデータ型に[集計]が追加された!集計フィールドを簡単作成
Access2010では、テーブルのデータ型に[集計]が追加され、テーブルに集計フィールドを作成できるようになりました。 計算の結果は集計列 ...
フォームの[商品]をコンボボックスに変更
テーブル[T売上]をもとに単票フォームを作成します。
ウィザードを使ったフォームの作成は、以下の記事で解説しています。
-
フォームウィザードでフォームを作成(クエリが認識されないことも)
Accessのフォームとはテーブルやクエリのデータをもとに、データの表示、入力、編集するためのオブジェクトです。 フォームウィザードでは、[ ...
フォームは、以下のようなレイアウトにしています。
コントロールの種類の変更
テキストボックス[商品]で右クリックして、ショートカットメニューから[コントロールの種類の変更]-[コンボボックス]を選択します。
コンボボックスのプロパティ
フォームの商品コンボボックスには[商品]と[単価]を表示するようにします。
コンボボックスのプロパティを表示します。
参考プロパティシートは、[F4]キーで表示/非表示の切り替えができます。
[商品]コンボボックスのプロパティ[データ]タブです。
[値集合ソース]は[T_商品]、[連結列]は[2]にします。
[連結列]は通常[1]です。[連結列]とは、データとしてテーブルに保存される列のことです。列は左から1と数えます。
[商品]コンボボックスのプロパティ[書式]タブです。
プロパティの[列数]は[3]、[列幅]は[0cm;3cm;3cm]として、商品テーブルの1列目の[商品ID]は表示しないようにしています。
[リスト幅]は、[6cm]にしています。
参考以下の記事では、コンボボックスのプロパティ設定について解説しています。参考になると思います。
-
コンボボックスとリストボックスのカスタマイズ(プロパティの設定)
フォームにコンボボックスやリストボックスを使用すると、一覧のリストの中から選択できるようになります。 作成方法はいくつかありますが、コンボボ ...
コンボボックスのプロパティ[更新後処理]で設定
[商品]コンボボックスの[更新後処理]で設定します。
マクロビルダーと、コードビルダーで設定する方法を紹介します。
どちらで設定してもかまいません。
[マクロビルダー]と[コードビルダー]の相違点などは以下の記事で解説しています。
-
マクロアクション(マクロビルダー)とVBA(コードビルダー)
Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...
マクロビルダーで設定
コンボボックスのプロパティ[イベント]タブの[更新後処理]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]を選択して[OK]ボタンをクリックします。
[マクロウィンドウ]が表示されます。
[表示/非表示]グループにある[すべてのアクションを表示]をクリックします。
[新しいアクションの追加]の▼ボタンをクリックして、[値の代入]を選択します。
一番下までスクロールすると見つけられます。
[アイテム]に[単価]と入力します。
[式]には、以下のように入力します。
参考Column の引数は列数です。この値は 0 から始まります。
以下のように入力できたら、[上書き保存]をクリックした後、[閉じる]ボタンをクリックして閉じます。
設定後のプロパティには、[埋め込みマクロ]と表示されます。
コードビルダーで設定
コンボボックスのプロパティの[イベント]タブの[更新後処理]の[ビルダー選択]ボタン[…]をクリックします。
[ビルダーの選択]ダイアログボックスが表示されますので、[コードビルダー]を選択して[OK]ボタンをクリックします。
以下のように入力します。
単価.Value=商品.Column(2)
参考Column の引数は列数です。この値は 0 から始まります。
設定後のプロパティには、[イベントプロシージャ]と表示されます。
これでフォームの[単価]には、[商品]の単価が表示され、その値を取得することができます。
非連結のテキストボックスに[商品ID]を表示
非連結のテキストボックスを挿入して、[商品ID]を表示することもできます。
表示のみでテーブルに保存しなくてもいい値という場合の方法です。
まず、非連結のテキストボックスを挿入します。[非連結]とはテーブルやクエリのデータがもとになっていないコントロールのことを指します。
参考この時、テキストボックスのみ挿入したいのであれば、[Ctrl]キーを押したままドラッグします。
そして、テクストボックスのプロパティを表示して、[データ]タブの[コントロールソース]に以下のように入力します。
=[商品].[column](0)
参考フォームの非連結のテキストボックスにコンボボックスの値を表示する方法は、以下の記事でも解説しています。
コンボボックスの2列目を表示(テキストボックスのコントロールソースで設定)
フォームに切り替えて確認
デザインビューからフォームビューに切り替えるショートカットキーは[F5]キーです。
参考コンボボックス内にカーソルをおくだけでリストを表示するようにすることもできます。
-
コンボボックス内にカーソルが移動すると自動でリストを表示するには
Accessの入力フォームでコンボボックスを使うことは多いと思います。 コンボボックスって、▼ボタンを押してリストを表示しますが、コンボボッ ...