アクセス2007でのルックアップ機能の使い方と注意点

このQ&Aのポイント
  • アクセス2007で社員の経歴を入力するため、ルックアップ機能を使います。しかし、ルックアップさせる役職の並びが変わると、既入力データが変わってしまう可能性があります。
  • テーブルBの役職を追加するなどして役職の並びが変わると、既に入力されているデータが変更されてしまいます。これを防ぐためには、経歴役職のフィールドには役職名ではなく、役職のIDを入力するようにします。
  • 役職のIDを入力することで、テーブルBの役職名の変更によっても経歴役職が変わることはありません。ただし、表示する際には経歴役職のIDを役職名に変換する処理が必要です。アクセスの初心者でも、この方法ならデータの変更を防ぐことができます。
回答を見る
  • ベストアンサー

アクセス2007 ルックアップについて

アクセス2007で社員の経歴を入力するため、ルックアップ機能を使おうと思っています。 社員経歴テーブル(A)と役職テーブル(B)があります。 Aのフィールド「経歴役職」にBのフィールド「役職名」をルックアップさせようと思いますが、今後、テーブルBの役職を追加するなどして役職の並びが変わると、既入力データが変わってしまうと思うのですが、既に入力されているデータは変わらないようにするには何か方法があるのでしょうか。 例えば、 テーブルB コード 役職名 1   部長 2   支店長 3   所長 と、入っていますが、 1   部長 2   副部長 3   支店長 4   所長 とした場合、 テーブルAの経歴役職が支店長で入っていた箇所が副部長となってしまうと思うのですが。。。 アクセス超初心者で、言いたいこともうまく伝えられないのですが、どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

#1です > ちなみに、経歴役職のデータ型は、“テキスト型”連結列は1、列数は1となっています。連結列は2、3と変えてみたら、テーブルA上からは、役職名が見えても、選べません(設定できません) 私の早とちりでした。 コードがあったので、コード部分で連結されているとばかり思ってました。 今のルックアップの値集合ソースは以下の様な感じになっているのでしょうか SELECT 役職名 FROM テーブルB; コードが主キーとかの場合には、コード順で表示されます。 ただ、この場合では、経歴役職には文字列が格納されるので、コードを変更したとしても格納済みの文字列が変わることはありません。 ご質問に書かれた変更しても大丈夫だと思います。 新規mdbに小さいテーブルを作成して、実際にやってみてください。 私が早とちりした状況は以下) ・経歴役職の型は、コードの型と同じ ・ルックアップの設定は以下 値集合ソース:SELECT コード, 役職名 FROM テーブルB; 連結列:1 列数:2 列幅:0cm;2cm → 例えばの幅で、1つ目は 0cm にして1列目は表示しない(コードを非表示) 入力チェック:はい この状況ではテーブル間は、コードで結び付けられているので、コードに対する役職名は変更しません。 で、コードを変更せず役職を追加し、表示順を変更する方法として #1 に書いてました。

datayoin
質問者

お礼

色々検証していたため、お礼が遅くなりました。なんとか、私が思うような形ができました。ありがとうございました。

その他の回答 (1)

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

> 既に入力されているデータは変わらないようにするには コードに対する役職名は変更しません。 新しい役職が必要になったら、どんどん追加していきます。 (コードに対して重みづけをしているのならダメですが:1より3が偉いとか) 単に問題になるのは見た目での表示順になると思うので、表示順のフィールドを追加し、そのフィールドで並べ替えします。 例えば、 テーブルB コード...ソート...役職名 1.............1...........部長 2.............3...........支店長 3.............4...........所長 4.............2...........副部長 ルックアップの値集合ソース例) SELECT コード, 役職名 FROM テーブルB ORDER BY ソート; ※順番が違ったら、従来の後ろに ORDER BY ソート を追加します。

datayoin
質問者

補足

早速のご回答をいただきありがとうございました。 教えていただいたように、テーブルBに「ソート」フィールドを追加し、ルックアップしてみたのですが、 テーブルAの「経歴役職」フィールドで役職を選ぼうとすると、“数字”しか出てこないのですが、これを、役職名から選び、テーブルA「経歴役職」フィールドは見た目では役職名が入っているようにするには、どうしたらよいでしょうか。 ちなみに、経歴役職のデータ型は、“テキスト型”連結列は1、列数は1となっています。連結列は2、3と変えてみたら、テーブルA上からは、役職名が見えても、選べません(設定できません)でした。 アクセス初心者でわからないことだらけでお恥ずかしいのですが、よろしくお願いいたします。

関連するQ&A

  • アクセスのテーブルでのルックアップフィールド表示

     いつもお世話になっております。  ACCESS2016を使用しています。  お聞きしたいのは、条件によってテーブルのルックアップフィールドに表示されるデータを変えたいのですが、その方法が分かりません。  フォームでのやり方は分かりますが、テーブルで表示させたいと思っています。  例えば、下記のようなテーブルがあるとします。 [入力用テーブル名:T_元号別担当者] 元号フィールド、担当者フィールド 平成      a 平成      b 令和      c 令和      d [ルックアップ用テーブル名:T_平成担当者] 担当者フィールド a b [ルックアップ用テーブル名:T_令和担当者] 担当者フィールド c d  イメージは、元号フィールドが平成の場合、担当者フィールドにT_平成担当者を、 元号フィールドが令和の場合、担当者フィールドにT_令和担当者をルックアップとして 表示させたいと考えています。  このやり方をどうぞご教示お願いいたします。

  • アクセステーブルでのルックアップ条件別表示について

     いつもお世話になっております。ACCESS2016を使用しています。  お聞きしたいのは、条件によってテーブルのルックアップフィールドに表示されるデータを変えたいのですが、その方法が分かりません。  フォームでのやり方は分かりますが、テーブルで表示させたいと思っています。  例えば、下記のようなテーブルがあるとします。    「T_マスター」テーブルの地区がAのときは「T_ルックアップA」を、「T_マスター」テーブルの地区がBのときは「T_ルックアップB」を担当者に表示させて、各「T_ルックアップ」テーブルにある3番目の担当者を入力したいと考えています。  テーブルでこの表示をさせたいのですが、やり方が分かりません。  どうぞご教示くださいますようお願いいたします。

  • 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のレコードを選択する方法でもいいです。 できれは両方知りたいです。 宜しくお願い致します。

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

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

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

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

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

    Access2007のルックアップフィールドについて 以下の2点について教えてください。 テーブルにルックアップフィールドを作成したあと、 (1)自動的に作成されたリレーションシップを削除しても、  ルックアップ列が表示されるのはなぜですか? (2)ルックアップ列の表示を解除したいのですが、どうすればいいですか?

  • アクセスのルックアップフィールドでルックアップリストを変えても既入力データが変わらないでほしいのですが

    アクセスでルックアップフィールドを使って商品型番を簡単に選択して入力したいのです。 商品型番は通常6種類程度と少ないのですが、時々型番が変わるのでルックアップリストを修正すると既入力データも変わってしまうので困っています。 既入力データ(ルックアップフィールド列データ)を変えずに行う方法はないものでしょうか? 商品型番は6種類と少ないので古いものもリストに残せばいいという考えもありますが、不要な型番が蓄積したリストというのも見にくいですし。 ルックアップフィールド以外の方法で回避する方法でもかまいませんが、VBAなどはまだかじってませんので、よろしくお願いします。

  • Access2000でのルックアップ

    Access2000を使用しております ルックアップ列を使用したいと思います ルックアップのテーブルを作成します そのテーブルで (     )が必要です みたいなものを作りたいのです この(    )に文字を入力するすべはないでしょうか? (    )はテキスト型でよいのですが

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

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

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

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

専門家に質問してみよう