Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Access 2013)
重複データを見やすく表示する方法
投稿日時: 19/07/09 10:49:22
投稿者: hato

お世話になります。
 
商品CD 商品名    業者CD    業者名    在庫合計    自社在庫    業者在庫    4月使用量・・・
----------------------------------------------------------------------------------------------
A001    商品A    G001        業者A        100        35        15        60
A001    商品A    G002        業者B        100        35        20        60
A001    商品A    G003        業者C        100        35        30        60
A002    商品B    G004        業者D        55        25        20        20
A002    商品B    G005        業者E        55        25        10        20
 
現在メインのフォームにデータシート形式のサブフォームで、上のようなデータを表示しています。
業者ごとに表示しているのですが、業者在庫の列以外は、商品ごとの数量なので、
同じ数字が複数行でてしまいます。
 
データシートでは重複しているデータの2行目以降を非表示にするなどの
処理はできないと思うのですが、何か別の方法で見やすく表示するやり方などありますでしょうか?
 
どうぞよろしくお願いします。

回答
投稿日時: 19/07/09 11:04:37
投稿者: sk

引用:
現在メインのフォームにデータシート形式のサブフォームで、
上のようなデータを表示しています。

・メインフォームのレコードソースはどのテーブル/クエリなのか。
 (あるいは非連結フォームなのか)
 
・サブフォームのレコードソースであるテーブル/クエリにおいて
 主キー(またはユニークキー)に相当しているのは
 どのフィールド(の組み合わせ)なのか。
 
・メインフォームとサブフォームはどのフィールドで
 リンクしているのか。
 
引用:
業者ごとに表示しているのですが、業者在庫の列以外は、商品ごとの数量なので、
同じ数字が複数行でてしまいます。

例えばメインフォームのレコードソースは[業者マスター]に当たるテーブルであり、
メインフォームとサブフォームが[業者CD]同士でリンクしている、という意味でしょうか。

投稿日時: 19/07/09 11:32:13
投稿者: hato

skさん、早速の返信ありがとうございます。
いつもすいません。
 

引用:
・メインフォームのレコードソースはどのテーブル/クエリなのか。
  (あるいは非連結フォームなのか)

メインフォームは年月や商品などを絞り込む用の非連結テキストボックスと
実行ボタン(コマンドボタン)が配置しています。
実行ボタンを押すとその結果をサブフォームのレコードソースにしているT表示用に格納して
データを表示しています。
 
引用:
・サブフォームのレコードソースであるテーブル/クエリにおいて
 主キー(またはユニークキー)に相当しているのは
 どのフィールド(の組み合わせ)なのか。

テーブルには特に主キーは設定していませんが、ユニークな列は
商品CDと業者CDの組み合わせです。
 
引用:
・メインフォームとサブフォームはどのフィールドで
 リンクしているのか。

メインフォームとサブフォームは特にリンクしておらず、メインフォームの
実行ボタンを押したらサブフォームにデータが表示されるという形です。
最初、商品ごとに在庫と各月の使用量を集計して表示していましたが、
そこに3、4列目に業者を追加して、商品と業者ごとの集計にしました。
メインフォームとはリンクなどはしていません。
説明がわかりにくくてすいません。
 
どうぞよろしくお願いします。

回答
投稿日時: 19/07/09 11:56:58
投稿者: よろずや

サブデータシートという機能があります。
 
https://access-2013.blogspot.com/2016/01/blog-post_31.html
 

回答
投稿日時: 19/07/09 12:03:50
投稿者: sk

引用:
サブフォームのレコードソースにしているT表示用に格納して
データを表示しています。

引用:
テーブルには特に主キーは設定していませんが、ユニークな列は
商品CDと業者CDの組み合わせです。

引用:
メインフォームとサブフォームは特にリンクしておらず

引用:
最初、商品ごとに在庫と各月の使用量を集計して表示していましたが、
そこに3、4列目に業者を追加して、商品と業者ごとの集計にしました。

それは各商品の在庫合計における、自社を含む業者ごとの
在庫の内訳を知るためでしょうか。

投稿日時: 19/07/09 13:26:51
投稿者: hato

よろずやさん、返信ありがとうございます。
サブデータシート、なんだかこれだと見やすい感じですね。
ちょっとこれでできるか、やってみようと思います。
ありがとうございます!
 
skさん、ありがとうございます。
そうなんです。自社製品を業者に製作依頼して、完成したらそのまま業者に在庫をおいてる分があって
在庫=自社在庫+業者在庫+(例では書いてなかったですが)業者依頼中
この商品の全部の在庫と、商品の業者ごとの内訳まで知りたいために、こんな表の形になっています。
説明不足ですいません。

回答
投稿日時: 19/07/09 14:00:08
投稿者: sk

引用:
自社製品を業者に製作依頼して、完成したらそのまま業者に在庫をおいてる分があって
在庫=自社在庫+業者在庫+(例では書いてなかったですが)業者依頼中
この商品の全部の在庫と、商品の業者ごとの内訳まで知りたいために、
こんな表の形になっています。

ならば、グループ化の単位が異なる 2 つの集計結果を
横に並べて表示させようとすることや、
「自社の在庫」と「自社以外の業者の在庫」を横に並べて
業者ごとに比較するようなレイアウトにすること自体に
問題があると思います。
 
引用:
商品CD 商品名 業者CD 業者名 在庫合計 自社在庫 業者在庫 4月使用量

引用:
A001 商品A G001 業者A 100 35 15 60
A001 商品A G002 業者B 100 35 20 60
A001 商品A G003 業者C 100 35 30 60
A002 商品B G004 業者D 55 25 20 20
A002 商品B G005 業者E 55 25 10 20

[商品別在庫集計]
--------------------------------------------
商品CD    商品名    在庫合計    4月使用量
--------------------------------------------
A001      商品A          100           60
A002      商品B           55           20
--------------------------------------------

[商品別在庫内訳]
--------------------------------------------
商品CD    商品名    業者CD    業者名    在庫
--------------------------------------------
A001      商品A     0000      自社        35
A001      商品A     G001      業者A       15
A001      商品A     G002      業者B       20
A001      商品A     G003      業者C       30
A002      商品B     0000      自社        25
A002      商品B     G004      業者D       20
A002      商品B     G005      業者E       10
--------------------------------------------

以上のように「商品ごとの在庫数の集計結果」と
「商品と業者ごとの在庫数の集計結果」を明確に分けた上、
自社と自社以外の業者を同じ属性として扱い、
その 2 つの結果を[商品ID]同士でリンクするように
なさればよろしいのではないでしょうか。
 
引用:
在庫=自社在庫+業者在庫+(例では書いてなかったですが)業者依頼中

そこに関しては「発注してからまだ納品されていない商品(未入庫の在庫)」の
個数を在庫合計に含めるべきか否か、「入庫済みの在庫」と「未入庫の在庫」を
明確に区別して集計、比較する必要があるか否か次第。

投稿日時: 19/07/09 14:59:55
投稿者: hato

skさんありがとうございます。
 
そもそも横に並べるのが問題だということがよくわかりました。
とても詳しく説明していただきありがとうございます。
2つにわけて表示しないといけないのですね。
その考え方を使わせていただいて、現在のサブフォームのデータシートを
サブデータシートに作り変えて表示しようと思います。
 
とても助かりました。
どうもありがとうございました!!