• ベストアンサー

Accessで教えてください。

次のような部品マスターテーブルと使用部品テーブルがあります。 【部品テーブル】部品コードと部品名が入っています 部品C 部品名 1  部品A 2  部品B 3  部品C 4  部品D 5  部品E 【使用部品テーブル】製品コードと使用部品の部品コードが入っています 製品C 部品1 部品2 部品3 部品4  1111  1  2  5  2222  2  4 3333  2  3  4  5 使用部品テーブルの部品コードに一致する部品名を表示したいのですが、どうすればいいですか。初歩的な質問だとは思いますが、Access初心者ですので、よろしくお願いします。 【作りたいテーブル】 製品C 部品1 部品2 部品3 部品4  1111 部品A 部品B 部品E  2222 部品B 部品D 3333 部品B 部品C 部品D 部品E 環境はAccess2000 Windows98です。

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

  • ベストアンサー
  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.4

クエリーデザイン画面で、 【使用部品テーブル】の部品のフィールド数だけ【部品テーブル】を表示します。 その【使用部品テーブル】の部品X と 【部品テーブル】の部品C を1つづつ結びます。 で、それぞれの 部品名を表示します。 結合プロパティは  「’【使用部品テーブル】’の全レコードと '【部品テーブル】'の同じ結合フィールドのレコードだけを含める」にします。

wata-yotti
質問者

お礼

何度もありがとうございます。出来ました。こんな簡単にできるんですね。クエリーデザイン画面で同じテーブルをいくつも表示できることを知りませんでした。本当に助かりました。

その他の回答 (3)

  • yatoaa
  • ベストアンサー率30% (110/362)
回答No.3

使用部品テーブルと部品テーブルと2つで 選択クエリーを作りそこで「部品名」を得ます 部品1 部品2 部品3 部品4 とあるので 同様に、4回クエリーをつづければできます 結合項目には「部品コード」を指定します (線で2つのテーブルを結合します) 注意点は 無い部品の場合では、アウトプットレコードが 出てこないので クエリーでの結合線を、右クリックして 結合プロパテイにて 「使用部品とテーブル」にあるレコードを全件だす へ◎をつけます

wata-yotti
質問者

お礼

ご回答ありがとうございました。何とかできました。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.2

SELECT ProName, DLookUp("PaName","TParts","PaCD=" & Nz([Pa1],"-1")) AS Parts1, DLookUp("PaName","TParts","PaCD=" & Nz([Pa2],"-1")) AS Parts2, DLookUp("PaName","TParts","PaCD=" & Nz([Pa3],"-1")) AS Parts3, DLookUp("PaName","TParts","PaCD=" & Nz([Pa4],"-1")) AS Parts4 FROM TProduct; みたいに、DLookUpを使ってみては。

wata-yotti
質問者

お礼

ご回答ありがとうございます。これってSQLですよね。SQLは敷居が高いので、クエリでDlookupを使用しようとしましたが、うまくいきません。クエリでのDlookup関数の書き方を教えてください。よろしくお願いします。

  • ryuu001
  • ベストアンサー率61% (46/75)
回答No.1

データーベース的な【使用部品テーブル】の作り方は 次のようにされた方が良いと思います。 製品C 部品 1111  1 1111  2 1111  5 2222  2 2222  4 でないと、困りますよね! 部品ごとの集計はできないし、 これを元に部品手配もできないですよ。 それに、今回のような問題もでてきます。

wata-yotti
質問者

お礼

ご回答ありがとうございます。私も同じ意見です。このデータベースは会社で使用しているシステム(Accessで出来ている)の一部です。このデータを使用していろいろ処理をしようと思ったのですが、私の知識ではリレーションシップも使用できなかったので、質問させていただきました。私も【使用部品テーブル】がなぜryuu001さんがご提案いただいたような構成になっていないのか疑問に思いますし、なっていればリレーションシップも使用できるのになと思っています。でも、どうしてもこのデータベースを使用したいので、ご教授おねがいします。EXCELだったらVLOOKUP関数を使用するとできますが、データ数が多いためAccessで処理したいと思っています。

関連するQ&A

  • Accessのコンボボックスの使い方について

    初心者です。 コンボボックスの使い方について教えて下さい。 商品テーブルA 商品名|コードA|コードB|コードC| マスターテーブル A|B|商品名|コードA|コードB|コードC|D|E のような2つのテーブルを作成し、マスターテーブルの「商品名」に コンボボックスで商品テーブルAの商品名を表示させるとします。 そこでコンボボックスで商品名を選択すると同時に 商品テーブルAからほかの「コードA」「コードB」「コードC」の値を マスターテーブルの「コードA」「コードB」「コードC」に入れる方法は ありますでしょうか? また、他の方法はありますでしょうか? 宜しくお願い致します。

  • レコードの一致方法

    テーブルA(マスター) [コード]、[商品名]        ○○○、△△△ テーブルB [コード]、[商品名]       ○○○、△△△ テーブルC [コード]、[商品名]       ×××、△△△ 以上のように、3つのテーブルの不一致クエリーなどを 抽出する場合、テーブルAとB同士の場合は、一致しないのはコードを結合線で結べば、すぐに出てきますが、テーブルAとCの比較の場合は、コードを結合線で結んだところで、違うのでうまくできません。 商品名は△△△なので、コードが違っていても、商品名はあっているので、不一致ではなく、一致しているというように考えたいのです。 △△△についてのコードは×××、○○○というように2つ以上持っているような感じですれば、うまくいくとおもっているのですが、こういう場合はテーブルAにコードのフィールドを2つ作っておいて、結合線でつなぐときに切り替えてするしかないのでしょうか? テーブルA(マスター)で、このような、2つのコードを持っているとおもわれる商品はレコード100以上あって、それをそれぞれ選びながら入力していかないかとおもうと、大変な作業化とおもっているのですが、アドバイスあればお願いします。

  • accessで二つの条件が一致するものを

    accessで二つの条件が一致するものを アクセスで原材料管理を行っていて 以下の二つのテーブルがあります 日別使用原材料テーブル 日付 製品コード 材料コード 2/1 A A-1 2/1 A A-2 2/1 B A-1 2/2 C B-2 2/2 A A-1 2/3 D C-3 日別不足材料テーブル 日付 材料コード 不足材料 2/1 A-1 10 2/1 A-1 2 2/2 A-1 5 2/2 B-2 1 この二つのテーブルがありこの二つのテーブルを一つにまとめたいと思います 具体的には以下のテーブルを作りたいのです 日別製品別材料不足テーブル 日付 製品コード 材料コード 不足材料 2/1 A A-1 10 2/1 B A-1 2 2/2 A A-1 5 2/2 C B-2 1 日付毎に 足りない分だけの材料を製品毎に表示させたいのですが 日別の製品別に足りない材料を結合する方法がわからないので よろしくお願いいたします。

  • access データ更新

    Access初心者です。 いま、自分がやってる業務の簡単なDBをaccessで作成しようとしてます。質問ですが、テーブル(1)とテーブル(2)、((1)(2)ともにフィールドは仮に、A列(ユニークなコード)、B、C、D(日付)、E(午前 or 午後)とした場合) テーブル(2)に日々CSVファイルをインポート。その際、テーブル(1)と(2)の差分((1)にあって(2)にないもの)をテーブル(1)に追加したいのと、テーブル(1)(2)両方あるが、D列、またはE列が、テーブル(1)と(2)が違った場合、テーブル(2)にあるデータを書き換えてテーブル(1)に保存するような、マクロを作りたいと考えてます。 不一致クエリとか使えば、出来そうな気がするんですが・・・ どなたか、ご存知の方、教えてください。

  • Access、複数のテーブルからデーターを抽出する

    Access初心者です。 いくつかのテーブルがあります(日付順に用意されています) そのテーブルから、指定のセル(といっていいのでしょうか) より、データーをクエリとして抽出したいのですが、簡単なやり方はあるのでしょうか? 例として、 テーブル名 [0301]、[0302]、[0303]、[0304]、[0305]、・・・・・・・・。という5つのテーブルがあります。 1つのテーブル内は、このようになっています。 ------------------------------------- A B C D E F G 1 2 3 4     11 22 33 44 55 66 5 ------------------------------------- この5つのテーブルより、「B4」から「F4」までのデーターのみを ------------------------------------- 0301 ・・・・・・・・・・・・・・・・・・・・・・・・ 0302   ・・・・・・・・・・・・・・・・・・・・・・・・ 0303   ・・・・・・・・・・・・・・・・・・・・・・・・ 0304 -------------------------------------- といったように取り出すことはできますか? どうぞ宜しくお願い致します。

  • アクセス2003 SQL2000を使用してます。

    いつもお世話になっています。 下記のようにAテーブルBテーブルを元に Cテーブルのようにデータを出力したいのですが、 SQL文がうかびません。 どなたか教えてください!! ●Aテーブル(取込データ)  名前  | コード1(主コード) -------------------------  小林  | 100   小林  | 102    田中  | 110   町田  | 130  木村  | 160  木村  | 160  木村  | 180 ●Bテーブル(取込データ) コード1 | コード2 ---------------------------  100   | A  110   | C   130   | D  160   | E ●Cテーブル(出力データ/ABテーブル合体させたもの) ★ ※※※を表示させたい!  ↓ここまでは表示はできている↓  名前  | コード1  | コード2 --------------------------------------------  小林  | 100    | A  小林  | 102    | ※※※  田中  | 110    | C   町田  | 130    | D  木村  | 160    | E  木村  | 160    | E  木村  | 180    | ※※※  ↓表示したい内容。不明な点。↓  名前  | コード1  | コード2 --------------------------------------------  小林  | 100    | A  小林  | 102    | A  田中  | 110    | C   町田  | 130    | D  木村  | 160    | E  木村  | 160    | E  木村  | 180    | E 以上 よろしく御願いします!!

  • access2003コンボBOXの絞込み

    部品マスターテーブル内に300件以上のデータがあります。 部品マスターテーブル 品ID  品区分  品コード  品名  ****  ****  ・    a  ・ b *製品仕様のサブフォーム内に部品構成を作るのですが 製品仕様フォーム  製品コード 999   製品名 ZZZ    構成 sub   999  品ID 品区分 品コード 品名  員数 ****   ・   ・ 現在品コードをコンボBOXのリストから入力していますが 300件以上表示され見つけ出すのが大変です。 品区分のカテゴリでANDの絞り込みができれば表示件数は1/10に減ります。レコード入力の際サブフォームからの入力時にできないものでしょうか? 

  • ACCESS SQLステートメントについて初心者です。

    お知恵を貸してください。 ACCESSでSQLステートメントで 『Aテーブル』 ID  商品コード1 商品コード2 1    1111    2222 2    2222    3333 3    4444    5555   『Bテーブル(商品コードマスター)』 商品コード  商品名 1111     ああああ 2222     いいいい       3333     うううう 4444     ええええ 5555     おおおお AテーブルとBテーブルを結合して ID  商品コード1 商品名    商品コード2   商品名 1    1111  ああああ     2222    いいいい 2    2222  いいいい     3333    うううう 3    4444  ええええ     5555    おおおお というCテーブルを作りたいです。 商品コード1と商品コード2の両方共 Bテーブルの商品コードから商品名を取得したいのですが、できないのですが・・・・ 出来ればBテーブル(商品コード)を2つ作くったり等したくないのですが、SQLステートメントでどう記述すれば良いですか?      

  • Access2010 テーブルのフィールドについて

    Access2010を使用しています。 テーブルのフィールド定義 [A][B][C][D][E][F][G] ↓ テーブルを開くと [A][B][C][E][F][G][D] と勝手に変わる (あるフィールドだけ、別の場所に移動) ↓ フィールドの並び順を [A][B][C][D][E][F][G] に戻す ↓ 保存してテーブルを閉じる ↓ 再度開くと [A][B][C][E][F][G][D] と変わってしまう。 この繰り返しです。 どなたか、お助け下さい。 よろしくお願いいたします。

  • 【access】複数のフィールドの不一致クエリ

    アクセスはまったくのド素人です。 OS:WindowsXP バージョンは2000です。 A,Bのテーブルがあり、それぞれのレコードは以下の通りです。 A a b c 1 4 7 2 5 8 3 6 9 5 6 8   B  d e f 5 6 8 1 4 7 2 1 3 4 4 6 d,e,fのフィールドがa,b,cと一致しないレコード(ここでは『2 12 13』と『2 1 3』)をクエリで抜き出したい時はどうすればよいでしょうか? d,e,fに『Is Null』を指定して不一致クエリを実行しても思うように行きませんでした。