• 締切済み

Accessで、フィールドにルックアップリストを設定した場合に表示される数値について

Accessで、フィールドにルックアップリストを設定したときに、 表示される数値について不明な点があります。 詳細は以下のとおりです。 【詳細】 次のようなテーブルがあります。(「顧客名簿」テーブルと「地域ID」テーブル)  ■テーブル名「顧客名簿」   顧客ID  顧客名  地域ID 住所   001 佐藤一郎  8 大阪府堺市   002 鈴木二郎 8 大阪府八尾市   003 山口三郎  8 兵庫県姫路市   004 野中四郎  9 広島県広島市   005 早川博史  4 千葉県習志野市   006   山本剛史  3 福島県福島市 -------------------------------------------------------------------------------  ■テーブル名「地域リスト」   No  都道府県名 地域ID   1  北海道 1   2  青森県 2   3  秋田県 2   4  岩手県 2   5   宮城県 3 6 山形県 3 7 福島県 3 8 茨城県 4 9 栃木県 4 10 群馬県 4 11 埼玉県  4   12 千葉県  4       ・       ・           ・             ・   29 大阪府 8 30 兵庫県 8  ※途中、No.13からNo.28までの表示を省略しました。 ------------------------------------------------------------------------------ 次の操作を行います。 【操作手順】  (1)テーブル「顧客名簿」のデザインビューを表示する。  (2)「地域IDフィールド」の、「データ型」を変更するために、    「地域IDフィールド」の「データ型」をクリックし、 一覧から「ルックアップウィザード」を選択する。  (3)「テーブルまたはクエリの値をルックアップ列に表示する」を選択する。  (4)「次へ」をクリック。  (5)「表示」エリアから「テーブル」を選択し、リストの一覧から 「テーブル:地域リスト」を選択する。  (6)「次へ」をクリック。  (7)ルックアップ列に表示するフィールドを表示順に選択する。    まず、キー列「No」を選択、次に「地域ID」、続いて「都道府県」を選択する。 (8)「次へ」をクリック。 (9)「キー列を表示しない(推奨)」のチェックボックスがオンになっていることを確認し、    「次へ」をクリック (10)ラベルの表示が「地域ID」となっていることを確認し、「完了」をクリック (11)保存を確認するダイアログボックスが表示されるので、「はい」をクリック                                  以 上 ------------------------------------------------------------------------------- 【疑問点】 上記操作を実施後、 テーブル「顧客名簿」を表示した時に、 次のように表示されている。(地域IDの数字が変更されている。) ■テーブル名「顧客名簿」  顧客ID  顧客名  地域ID 住所   OO1   佐藤一郎  4 大阪府堺市   002 鈴木二郎 4 大阪府八尾市   003 山口三郎  4 兵庫県姫路市   004 野中四郎  4 広島県広島市   005 早川博史  2 千葉県習志野市     006   山本剛史  2 福島県福島市 このとき、地域IDの数値が、 何故、このように、「4」や「2」に変わるのかがわかりません。

みんなの回答

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>はじめに設定されていた数値と異なる値が表示されることになり、 >再度、ルックアップリストで数値を修正しなければならなくなるのは、 >不自然な感じがします。 ????なんか思いっきり勘違いしていません? AテーブルがBテーブルを参照しているとき Aテーブルのフィールドでルックアップを使いBテーブルの値を表示させようとしたとき 両者を結ぶのが連結列ですよ あなたのやったことがおかしな結果を返している原因は 地域IDと関係のないNOなんてフィールドを連結しているからです だから本当は何がしたいの?と聞いたのです 普通は顧客リストの地域IDフィールドのところに地域リストの都道府県名を表示させたいときに ルックアップを使用します

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

>このとき、地域IDの数値が、 >何故、このように、「4」や「2」に変わるのかがわかりません。 >(7)ルックアップ列に表示するフィールドを表示順に選択する。 >   まず、キー列「No」を選択、次に「地域ID」、続いて「都道府県」を選択する。 とすると連結列はNo、表示されるのは地域IDになります 元の値が8と9の顧客の分は地域リストNo8,9、茨木・栃木の地域ID4が表示されます 元の値が4と3は地域リストNo4,3の秋田・岩手の地域ID2が表示されるのです 本当は何がしたいの?

sataju
質問者

お礼

CHRONOS_0様 ご返答ありがとうございました。 教えていただいたことにつきまして確認させていただきます。 フィールドに、ルックアップウィザードでルックアップリストを設定した場合は、 そのフィールドには、元の値と一致する連結列の値の、元のテーブルと 同じフィールドの値が設定されるということですね? (ちょとわかりにくいですので以下のとおり例をあげます。) 例えば、 (1)「元の値」・・・・8 ←顧客名簿の「地域ID」フィールド (2)「元の値と一致する連結列の値」・・・・8 ←地域リストの「No」フィールド (3)「元の値と一致する連結列の値(8)の、元のテーブル(顧客名簿)   と同じフィールド(地域ID)の値」・・・・4 ←地域リストの「地域ID」フィールド どのようなテーブルでもこのように表示されるのでしょうか? もし、すべてのテーブルにおいて、このように、 連結列の値をみて、元のテーブルと同じフィールドの値が 設定されるのであれば、 これは、Access自体がこのような仕組みになっているのでしょうか? もし、この現象が、Accessの仕組みであると、 フィールドに数値が入っている状態で、 そのフィールドにルックアップウィザードを使って、 ルックアップリストを設定した場合は、 はじめに設定されていた数値と異なる値が表示されることになり、 再度、ルックアップリストで数値を修正しなければならなくなるのは、 不自然な感じがします。

sataju
質問者

補足

CHRONOS_0様 「本当は何がしたいの?」という質問に対して、未回答でした。 顧客名簿に、全国の顧客の情報を入力します。 その際に地域で分類するために、 地域IDという列を設定して管理します。 地域IDは、地域リストのテーブルの値を引用します。 話は変わりますが、次の操作をして結果が変わりましたので、 ご報告いたします。 説明しました手順で設定したあとに、 顧客名簿テーブルをデザインビューで表示し、 地域IDのフィールドプロパティの、ルックアップタブをクリックして、 連結列の設定を「1」から「2」に変更すると、 地域IDが正しく表示されるようになりました。 フィールドプロパティの連結列の値を「1」にしているときは、 CHRONOS_0様がおしゃられているように、 元の値の、「No.」の地域IDの値が表示されるようになっています。 以上です。

関連するQ&A

  • アクセスのルックアップリスト

    アクセスの初心者です。 多くのアクセスのテキストに、顧客名が1つ(のテーブルに)あれば、重ねて(他のテーブルに)表示する手間が省略できる、と書かれています。 顧客先が3000人いる場合、ルックアップリストから選択するのが、それを示しているのか、それとも、そうではなく、違う方法が一般的なのか、お知らせください。 顧客が3000人いる場合、顧客基本情報(住所等)テーブルと売上名簿テーブルの作り方です。あいうえお商事に鉛筆1000本を売った。あいうえお商事の会社IDは「2137」とします。「2137」があいうえお商事だということを、記憶しているはずがありませんので、売上名簿テーブルのなかに、あいうえお商事である「2137」に「鉛筆1000本」とするには、どうするのか、ということです。 よろしくお願いします。

  • Access 2重のルックアップフィールドで、ID番号ではなく、名称を

    Access 2重のルックアップフィールドで、ID番号ではなく、名称を表示したい。 Access 2010を最近昨日から始めました。データベースの正規化がうまくないかもしれませんが、以下の現象で困っています。 ・メーカーテーブル:メーカーID/メーカー名 ・部品テーブル:部品ID/メーカー名:メーカーテーブルよりルックアップフィールド(メーカーテーブルのIDとリレーション) ・在庫テーブル:在庫ID/部品名:部品テーブルよりルックアップフィールド(部品テーブルの部品IDとリレーション) 上記のテーブル構成だとします。 部品テーブルでは、ルックアップフィールドで、”メーカー名”が表示されています。これは問題ありません。 次に在庫テーブルで、部品をルックアップテーブルで選ぼうとすると、メーカー名が文字列で表示されてほしいところが、メーカーIDの数値がでてしまいます。部品テーブルのメーカー名が”数値型”で管理されていることが原因だと思いますが、ここをメーカーIDではなく、メーカー名を出すことはできますでしょうか?

  • Access2007でルックアップのリストに数字が出る

    Access2007でルックアップの設定を行うと、リストに数字が出てきてしまいます。↓のような場合どのようにしたら、文字列のリストを作れますか? テーブル1: 主キー フィールドA 01   収入 02   支出 テーブル2: 主キー フィールドA(テーブル1のルックアップ) フィールドB 01   収入                 給与 02   収入                 その他 03   支出                 光熱費 04   支出                 食費 テーブル3: 年月日   フィールドB(テーブル2のルックアップ) H21/05/01 『ここのルックアップ列をテーブル2のフィールドAとフィールドBを選択するとフィールドAの値が01、02・・・と表示されてしまう。』 両方のフィールドのルックアップを文字列で表示するにはどうしたらいいですか? ※上記解決方法が困難な場合はテーブル3に於いて、テーブル1のルックアップの値を指定してから、その値に対応するテーブル2のレコードを選択する方法でもいいです。 できれは両方知りたいです。 宜しくお願い致します。

  • Access2010のルックアップについて

    Access2010 で下記内容のようなデータ構造となるテーブルを作成しています。 大分類マスタ 大分類コード:大分類名 1:日本 2:アメリカ 3:カナダ ・ ・ 中分類マスタ 大分類コード:中分類コード:中分類名 1:1:東京 1:2:大阪 1:3:京都 2:1:ニューヨーク 2:2:シカゴ ・ ・ 小分類マスタ 大分類コード:中分類コード:小分類コード:小分類名 1:1:1:渋谷区 1:1:2:新宿区 1:2:1:大阪市 1:2:2:堺市 ・ ・ 中分類マスタでは大分類マスタに対して大分類コードのルックアップで大分類名を表示させることができました。 小分類マスタでも大分類名については同様になりましたが、中分類マスタのルックアップの定義がわかりません。 例えば大分類コードで日本が選択されている場合、中分類コードの入力時点では東京・大阪・京都のみを表示させたいのですが、どうしても中分類マスタのレコードがすべてが表示されてしまいます。 まだ開発初期段階のため、フォームなどは作らず、作成したテーブルをダブルクリックして表示される画面で試行しています。 そもそも、その方法では実現できないのでしょうか? それとも、ルックアップの設定で簡単に実現できるのでしょうか? お教えいただきたくお願いいたします。

  • ルックアップフィールドについて

    Accessをデータベースにして練習中です。 テーブルが複数あり、デザイナで基本フォームを作ってあります。 参考書にルックアップフィールドの作成の仕方が載っていたのですが わからなくなってしまったのでどなたか教えてください。 下のコードを実行すると、ルックアップフィールドが空白になってしまいます。 データセット名:業務DataSet 登録社員テーブル:社員ID、氏名、住所、電話の4列 成績テーブル:社員ID、成果、残業時間の3列 成績テーブルに対応したフォームをデザイナで作成。 社員IDは「社員IDComboBox」、ルックアップフィールドはツールボックスから作り、「氏名TextBox」にしました。  ルックアップフィールドのTextBoxに社員IDに対応した氏名を表示したいと思っています。   Private Sub 社員IDComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 社員IDComboBox.SelectedIndexChanged If 社員IDComboBox.Text = "" Then Exit Sub      End If Dim dr As 業務DataSet._登録社員Row dr = 業務DataSet._登録社員.FindBy社員ID(CType(社員IDComboBox.SelectedText, Integer)) If dr Is Nothing Then 氏名TextBox.Text = "" Else 氏名TextBox.Text = dr.氏名 End If End Sub 色々やっていたら何がおかしいのかわからなくなってしまいました。 すみませんが教えてください。 それと、ComboBoxに登録社員テーブルの社員IDの一覧を表示しようと思ったらどのようにすればよいのですか?

  • AccessのフォームのテキストボックスにLOOKUPで表示したい

    かなり初心者です。 Accessに"顧客テーブル"と"担当者テーブル"を作成しました。この顧客テーブルに顧客情報をフォームで入力していきたいのですが、顧客テーブルの担当者コードフィールドに担当者コードを入力した際、担当者テーブルの担当者名がExcelのLOOKUPと同じように表示できると思ってやりましたがうまくいきません。 テキストボックスのコントロールソースに =VLOOKUP([担当者コード],[担当者テーブル]![社員コード],[担当者テーブル]![社員名])・・・と入れたら、#Name?エラーが出ます。 Lookupは使えませんか?他に方法ありますか? よろしくお願いします。

  • AccessのフォームのテキストボックスにLOOKUPで表示したい

    かなり初心者です。 Accessに【顧客テーブル】と【担当者テーブル】を作成しました、それぞれに【担当者コード】というフィールドを作っています。この【顧客テーブル】に顧客情報をフォームで入力していきたいのですが、顧客テーブルの【担当者コード】フィールドに担当者コードを入力した際、【担当者テーブル】の担当者名がExcelのLOOKUPと同じように表示できると思ってやりましたがうまくいきません。 テキストボックスのコントロールソースに =VLOOKUP([担当者コード](フォームのテキストボックスの名前),[T_担当者テーブル],[T_担当者テーブル]![社員名])・・・と入れたら、#Name?エラーが出ます。 Lookupは使えませんか?他に方法ありますか? よろしくお願いします。

  • access2013 ルックアップの絞り込み

    初心者です。 access2013で、会社の作業伝票を作成したいとおもっています。 「作業伝票」テーブルの「取引先名」を、 「取引先」テーブルからルックアップで選択できるようにしたいのですが、 取引先すべてを表示すると多すぎます。 そこで、ふたつのテーブルに「業種」の項目をルックアップでつくり、 たとえば「作業伝票」テーブルの「業種」で「製造業」をえらんだときには、 「取引先名」のルックアップに、「取引先」テーブルの「業種が製造業」の項目だけ 表示されるようにできないでしょうか。 それとも、ほかに良いグループ分けの方法がありますか? ご回答、よろしくお願いします。

  • アクセス テーブル ルックアップ について

    アクセスです。[売り上げ] というテーブルで、フィールド [年月日] [果物] [個数] があって、[果物] の入力時に マスタテーブル [M果物] を ルックアップ 、 コンボボックス で選択するようにしています。すでにデータ入力してあります。ところが、[M果物] には、リンゴ、ミカン、メロン・・・・・などたくさんあるので、探して選択するのに不便になってきました。そこで、[果物]入力時に、よく売れる個数順に果物を並べ替えて、ルックアップ、コンボボックスに表示して入力を便利にしたいのですが、どのようにしたらよいのでしょうか?宜しくお願い致します。

  • MS accessでのルックアップ機能と並び替え

    access2007です。 一見実現できそうな処理なのですが、どうしてもその方法がわかりませんでした。 お手数ですが、おわかりの方がいらっしゃいましたらご回答よろしくお願いいたします。 テーブルをデザインビューで開いたときのフィールドプロパティでルックアップを設定して別なテーブルを参照しています。このとき、ルックアップによる格納値ではなく、表示値やルックアップテーブル中のその他のフィールドの入力値にしたがって並び替えを行いたいのです。 簡略のため、以下の例で説明させてください。 今ここに次の二つのテーブルがあるとします。  1.お客様テーブル  2.県名テーブル それぞれが持つフィールドは  1.お客様テーブル:[お客様コード]、[氏名]、[県名]  2.県名テーブル  :[県コード]、[県名]、[県名カナ] 「県名テーブル」の[県名]フィールドには順不同に47都道府県を入力していたとします。 さらに「県名テーブル」の[県コード]フィールドはオートナンバー型で47番まで番号がついています。 さて、「お客様テーブル」をデザインビューで開き、[県名]フィールドをコンボボックスに変更しルックアップを設定します。 設定は次のようにします。 値集合タイプ テーブル/クエリ 値集合ソース 県名テーブル 連結列1 列数2 列幅0cm;3cm これで「お客様テーブル」の[県名]フィールドへの格納値は[県名コード]の数字になり、表示値は[県名]フィールドの文字列になると思います。 ここで、「お客様テーブル」で並び替えをするときに、この格納値の数字ではなく、[県名カナ]にてカナ順にて並び替えをしたいのです。 ※コンボボックスのドロップダウンリストの中身を並び替えたいのではなく、「お客様テーブル」のデータの並び替えの優先キーとして、[県名カナ]を使用したいのです。 当然[県名カナ]による並び替えの順序を考慮して[県名コード]をつければ、格納値の数値で並び替えても希望の並びになるのはわかります。しかしここでいう[県名コード]がただのオートナンバー型のフィールドだとすると、これとは別に並び替えのキーとなるフィールドを作成してそれをもとに並び替えを行うという処理は、私以外でもニーズがあってもよいのではと考えたのです。 または単に私が見逃している機能があるのかもしれません。 何か解決策がありましたらよろしくお願いいたします。