Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2199 / 2272 ツリー ←次へ | 前へ→

【3445】自身を参照? 津波警報 04/9/7(火) 23:05 質問[未読]
【3447】Re:自身を参照? こもれび 04/9/8(水) 0:13 発言[未読]
【3450】追伸 こもれび 04/9/8(水) 6:03 発言[未読]
【3458】Re:追伸 津波警報 04/9/9(木) 1:28 お礼[未読]
【3459】Re:追伸 Gin_II 04/9/9(木) 2:12 回答[未読]
【3462】Re:追伸 hatena 04/9/9(木) 11:18 回答[未読]
【3486】Re:追伸 津波警報 04/9/11(土) 20:31 お礼[未読]
【3488】Re:追伸 こもれび 04/9/11(土) 21:20 回答[未読]
【3499】Re:追伸 津波警報 04/9/13(月) 21:54 お礼[未読]

【3445】自身を参照?
質問  津波警報  - 04/9/7(火) 23:05 -

引用なし
パスワード
    自分ではちょっと思い浮かびません。
知恵を貸してください。
 
 各々の装置に使われている部品を整理しております。

装置コード  部品コード
  1      A
  2      A
  3      A
  4      B

 というレコードを

部品コード  装置コード1    装置コード2   装置コード3
  A       1         2       3
  B       4

というクエリとして出力したいのですが…
 使用してるのはアクセス2000です。
宜しくお願い致します。

【3447】Re:自身を参照?
発言  こもれび  - 04/9/8(水) 0:13 -

引用なし
パスワード
   こもれびです

>部品コード  装置コード1    装置コード2   装置コード3
>  A       1         2       3
>  B       4

これですと、「装置コード1」がAにもBにも関係するように見えてしまう
のですが…? (元の表にある「装置コード4」が消えていますし…)

最終的な表現は
   装置コード1 装置コード2 装置コード3 装置コード4
    A      A      A      B
もしくは
   装置コード1 装置コード2 装置コード3 装置コード4
    A      A      A
   -----------------------------------------------------
                        B

というイメージではないでしょうか?

【3450】追伸
発言  こもれび  - 04/9/8(水) 6:03 -

引用なし
パスワード
   こもれびです

何のための表だろう…としばらく考え込みました。
ひょっとしてお作りになろうとしているのは「クロス集計クエリー」ですか?
もしそれだとしますと、数字のデータが一切元記事に無いし…
もう少し詳しくおつくりになりたいものを教えてください

【3458】Re:追伸
お礼  津波警報  - 04/9/9(木) 1:28 -

引用なし
パスワード
   レス有難うございます。

 失礼いたしました。
文章が不十分でした。

 では改めて

 ある部品が使用されている装置をまとめようと思っております。
1つの部品に対しまして、その部品を使用する装置は複数あります。

 元になるテーブルは
主キーはオートナンバーのID,装置コード、装置に使用される部品コード、使用数等がフィールドとなっております。一つの装置につき使用されている部品の数だけ
レコードがあり、異なる装置に同じ部品が乗っていることもあります。
 
┌──────┬──────┬──────┬──────┬
│装置コード │ 部品コード│ 使用数  │フィールド3│
├──────┼──────┼──────┼──────┼
│A1−00 │  001 │     1│     …│ 
├──────┼──────┼──────┼──────┼
│A1−00 │  002 │     2│      │
├──────┼──────┼──────┼──────┼
│A1−00 │  003 │     1│      │
├──────┼──────┼──────┼──────┼
│A1−01 │  001 │     6│      │
├──────┼──────┼──────┼──────┼
│B1−00 │  001 │     3│      │
├──────┼──────┼──────┼──────┼
│B1−00 │  002 │     4│      │
├──────┼──────┼──────┼──────┼
│      │      │      │      │
├──────┼──────┼──────┼──────┼
 上記の用になって下りますが

これを

┌──────┬──────┬──────┬──────┬
│対象部品  │ 使用装置1│ 使用装置2│ 使用装置3│
├──────┼──────┼──────┼──────┼
│ 001  │A1−00 │A1−01 │B1−00 │ 
├──────┼──────┼──────┼──────┼
│ 002  │A1−00 │B1−00 │      │
├──────┼──────┼──────┼──────┼
│ 003  │A1−00 │      │      │
├──────┼──────┼──────┼──────┼


部品コードを一意として、その部品に対して、使用されている装置を
まとめるつもりです。なお使用装置にふられた数字は便宜的なもので
意味はありません。
 どうかご教授さい。

【3459】Re:追伸
回答  Gin_II  - 04/9/9(木) 2:12 -

引用なし
パスワード
   > ある部品が使用されている装置をまとめようと思っております。
>1つの部品に対しまして、その部品を使用する装置は複数あります。

フィールド数が、可変になりますよね?
最大いくつぐらいなんでしょうか??

DJoin 関数 - リスト文字列を取得する方法
http://www.f3.dion.ne.jp/~element/msaccess/AcTipsVbaDJoin.html

ひとつのフィールドに入れてもいいのなら、↑なんてのもありますけど。

【3462】Re:追伸
回答  hatena  - 04/9/9(木) 11:18 -

引用なし
パスワード
   まず部品毎に連番を付けるクエリを作成します。
テーブル名は、テーブル1 と仮定してます。

SELECT
部品コード, 装置コード,
DCount("*", "テーブル1", "部品コード='" & 部品コード & "' AND ID <=" & ID) AS 使用装置No
FROM テーブル1;

出力結果

部品コード    装置コード    使用装置No
 001    A1−00    1
 002    A1−00    1
 003    A1−00    1
 001    A1−01    2
 001    B1−00    3
 002    B1−00    2


このクエリの名前を、クエリ1 とします。
このクエリを元にクロス集計クエリを作成します。

TRANSFORM First(装置コード) AS 装置コードの先頭
SELECT 部品コード
FROM クエリ1
GROUP BY 部品コード
PIVOT 使用装置No;

出力結果

部品コード    1         2         3
 001    A1−00    A1−01    B1−00
 002    A1−00    B1−00    
 003    A1−00

【3486】Re:追伸
お礼  津波警報  - 04/9/11(土) 20:31 -

引用なし
パスワード
    皆さん有難うございました。
早速実践してみましたが上手く行きそうです。
 お礼が遅くなり申し訳ありません。

ところで
  "部品コード='" & 部品コード & "' AND ID <=" & ID
の記述なんですが、これはどんなことを意味しているんでしょうか?
 もしよろしければご教授ください。

 

【3488】Re:追伸
回答  こもれび  - 04/9/11(土) 21:20 -

引用なし
パスワード
   こもれびです

DCountのヘルプを読まれればわかるとおもいますが、津波警報さん
が示されたテーブルと式を見比べられましたらすぐわかると思います。

オートナンバーでIDをふっていますよね。
「IDが同じかそれ以下」のレコード数を数えているわけです。

【3499】Re:追伸
お礼  津波警報  - 04/9/13(月) 21:54 -

引用なし
パスワード
    みなさん有難うございました。
お蔭様で仕事も上手く行きそうです。
 本当に有難うございました。

2199 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078299
(SS)C-BOARD v3.8 is Free