- ベストアンサー
親と子の品番管理方法とは?
- 親と子で多対多の関係にある様なデータの管理をどの様にしたらよいかを教えていただきたく。
- 親と子の関係にある品番データを効果的に管理するための方法をお教えください。
- Excelを使用して親と子の関係にある品番データを簡単に管理する方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>accessは、そのままデータが変更されてしまうので データの持ち方というか、テーブルの作成しだいですが。 Excelでも同じです。 >親と子を連結したデータで管理がよいかと思っています。 はっきり言えば何の役にも立ちません。むしろ無駄な 検索やら切り離しをする手間が出ます。 ということで、データとしてどこに持たせるか、 あるいは持たせ方は業務内容や工程などのありようによって 一概には言えませんが、簡単に言えば、 ID 親品番 変更前子品番 変更後子品番 変更日時 担当 1 A001 x001 x002 2015/08/01 近藤勇 2 B001 x001 x002 2015/08/03 竹中半平太 3 C001 x001 x002 2015/08/05 豊臣秀吉 4 A001 x002 x001 2015/08/10 織田信長 のような変更履歴テーブルを別途用意することですか。 これはAccessでもExcelでも同じです。Excelならば同じ Bookの別シート、あるいは別Book。Accessならばテーブル。 見ての通り、最後の行でA001の子品番をx002からx001に 戻しています。このようなテーブルを別途持てば、以前の 仕様を親品番、変更日時から検索して再現が可能です。 変更日時は時間も入れておくべきかと思います。 また、この変更履歴テーブルは、 ID 親品番 変更前子品番 変更後子品番 変更日時 担当 1 A001 x001 x002 2015/08/01 近藤勇 2 WA001 A001 B001 2015/08/02 近藤勇 3 WA001 B001 C001 2015/08/02 近藤勇 4 B001 x001 x002 2015/08/03 竹中半平太 5 C001 x001 x002 2015/08/05 豊臣秀吉 6 A001 x002 x001 2015/08/10 織田信長 のように、上位の親(この場合はWA001)の変更履歴も同時に入れます。このテーブルは 階層型のデータになっていますから、再現する場合は本来はTreeView などを使って表示するのが一番ですが、親品番、変更日時などで 他のデータ群(テーブル)とも合わせて変更前の組合せを取り出す ことも可能です。 当然ながら、現在使用している親、子の部品は、それらだけが 記述してあるテーブル(言うなれば生産計画テーブル)が存在する必要が あるし、変更されれば変更したデータが記述してある必要があります。 また、最終製品一覧(会社で作る)、部品一覧(最下位あるいは最下位と中間品) などのデータも必要でしょう。最下位とは搬入した部品をそのまま使うものです。 上記の表のWA001は中間品としています。 などなど書きましたが、このような変更履歴一つとっても、データを溜め込んでも 実際に使い物になるかは、データの取り扱い(データの塊の作り方、VBA、ときにはSQL) 次第です。 AccessでもExcelでも同じですが、データ量やいろいろな小道具を考えれば このような案件ではAccessを使うのがいいのではと思います。もちろん Excelでもできます。 データ量が蓄積していけば、AccessやExcelではどうしようもなくなれば、 データを他のデータベースに移し、端末としてAccessやExcelなどで必要な データを絞り込んで取り出す工夫が必要になるかもしれません。あるいは 複数のAccessファイルにデータを移し、ExcelあるいはAccessを端末 として使う方法もあります。 どの程度作り上げるのか。最低限必要な、データとデータの加工程度 などを考え、最後まで作るのかあるいは無理ならあきらめるのか そのあたりを突き詰めておかないと無駄な時間と労力を費やすことに なります。 細かい事ながら一つ付け加えますと、たとえば部品表、 ID 品番 開始日時 終了日時 1 A001 2015/05/01 2015/05/08 2 WA001 2015/05/02 2015/07/03 3 WA002 2015/05/02 4 B001 2015/05/03 5 C001 2015/05/05 6 A002 2015/05/09 7 A001 2015/08/01 のように部品表に開始日時、終了日時を データとして持たせればいろいろ使い勝手の いいものになります。もし、A001を再度 使用することになるのならば、開始日時と 終了日時を書き換えるのではなく、A001を 追加して開始日時を入れる、というようにすれば いいのでは、と思います。あとはどのような データがいるのかは取り出し方次第です。 上記の表で言えば、A001は2015/05/09から 2015/07/31の間は使用していないということが 分かります。使用していないということはこの間に 作成されたものの中にA001が使用されたものが 存在するということがあれば何らかの手違いが あったということになります。たくさんの部品の中からこれを どのように取り出すかは、Excel、Accessそれぞれの 小道具を使って得意な方法で取り出せばいいのです。 たとえば、現在使用している部品の一覧ということであれば 終了日時がNullのものを取り出せばいいのです。 当然ながら終了と変更は違います。 データは一つのデータ群に見晴らしがいいだろうということで てんこ盛りのフィールドを作り、何でも入れ込めばいいというもの ではありません。不要なデータ、あるいは不要な重複を無くし、 必要最小限のデータの塊を適正な数だけ作成する、ということが肝要です。 つまりデータベースで言えば正規化です。これはExcelもAccessも 同じです。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
このコーナーは、質問して好意で教えてもらうコーナーなのだから、回答者が質問内容に疑問をさしはさむような回答が載ったら、もう少し頻繁に毎日このコーナーの回答ぶりをみて、即座に補足するなりするのが、礼儀ではないか。 ーー 「管理」とはどういうことを意味するのか。Accessではできないといっているが、まずデータベース的なことを勉強して質問すべきだろう。 (エクセルや)アクセスとも、リレーショナルな考えがもとになっいて、その他のファイル構造のソフトは、個人や中小の事業所では買えないだろうし、勉強も難しい。 https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A2%E3%83%87%E3%83%AB#.E3.83.87.E3.83.BC.E3.82.BF.E3.83.99.E3.83.BC.E3.82.B9.E3.83.BB.E3.83.A2.E3.83.87.E3.83.AB 「データ・モデルのタイプ」 ーー 1,2具体的な場合に絞って、例を挙げ、やりたいことを文章化して、質問すべきだろう。いろんなケースにも対応できるレベルなど質問者が考えらる場合じゃないだろう(力はないだろう)。 どうせエクセルにシートに親子関係を同行の別列に、ありのまま並べて入力しておいて、必要のつど、VBAででも、並べ替えたり、抜出したり、置換したりする程度で対応するしかないだろう。 VBAもできないなら、何をかいわんや。方法はなしかと思う。 ーー 例もA001とかX002とか記号でなく、実際の例を出せないなら、似た製品名に置き換えて、読者にイメージしやすくすることを願いたい。 管理って取りあえず製品名の変更などのことか。 >accessは、そのままデータが変更されてしまうので 履歴を残すとか、旧名で来ても今までと同じ処理とかは、利用者側で工夫するしかないだろう。こういうことをしたいのか。 そもそもエクセルを業務に使えるのは限定的だとおもう。最小限ACCESS(のクエリ)を勉強するべきだ。
お礼
回答ありがとうございます。 このコーナーは、質問して好意で教えてもらうコーナーなのだから、回答者が質問内容に疑問をさしはさむような回答が載ったら、もう少し頻繁に毎日このコーナーの回答ぶりをみて、即座に補足するなりするのが、礼儀ではないか。 → 質問者にも回答者にもリアの事情というのがあると思います。 物理的にアクセスする環境がなければ回答しようがありません。 質問者側が、すぐに回答が欲しいと要求しておいて レスポンスに、すぐに反応しないのは無礼でしょうが、 私の場合は、”暇なときにでも”の条件で提示しています。 「管理」とはどういうことを意味するのか。Accessではできないといっているが、まずデータベース的なことを勉強して質問すべきだろう。 → 管理とは、品番履歴管理を意味します。 accessではできないとは言っていません。access単独で品番履歴をする場合、 間違った変更をしてしまうと、そのままデータが変更されてしまうので やりたくないという思いです。 excelの場合は、間違った場合、”戻る”で戻せます。 1,2具体的な場合に絞って、例を挙げ、やりたいことを文章化して、質問すべきだろう。いろんなケースにも対応できるレベルなど質問者が考えらる場合じゃないだろう。 → 例は品番管理ということで具体例をあげています。 実際は、もっと長い品番ですが、構成のイメージとしてあげただけなので 短い品番の方が把握しやすいかと思った次第です。 どうせエクセルにシートに親子関係を同行の別列に、ありのまま並べて入力しておいて、必要のつど、VBAででも、並べ替えたり、抜出したり、置換したりする程度で対応するしかないだろう。 → ”親子関係を同行の別列に、ありのまま並べて入力” の構成で考えていますが、検索して置換だと、同じ品番を多数の親品番配下に構成しておいて検索→置換という操作になるので、レスポンスが悪くなるの事を懸念しています。 管理って取りあえず製品名の変更などのことか。 → 製品の付属品(仕様)の管理です。その仕様に品番がひもづいています。 >accessは、そのままデータが変更されてしまうので 履歴を残すとか、旧名で来ても今までと同じ処理とかは、利用者側で工夫するしかないだろう。こういうことをしたいのか。 → 変更履歴として残します。 旧名で来ても今までと同じ処理もありえます。 ここは、人の判断で対応しようと思っています。 現システムの概要から目的を説明しておきます。 製品に付属品としてリストを作成します。 仕様に対して、どういった付属品が必要かを、 作業者が手動で品番を選択しています。 手動でしているので”モレ””ミス”が発生します。 仕様の品番に対して、必要な”モノ”のリストを 自動で作成したい というのが目的です。 現システムが手動選択→自動選択にして、 ”モレ””ミス”防止を図りたい、というわけです。 これを実現する為に、品番管理が必要。 その品番管理方法は、どういったお奨めの内容があるかを お聞きしたいというおもいです。 品番のDB管理はaccess、編集ツールはexcelとし、 両者をODBC接続が理想的な構成かと思っています。
- -9L9-
- ベストアンサー率44% (1088/2422)
>親と子で多対多の関係にある様なデータ どんな意味付けがあるのかわかりませんが、それは親子関係とはいいません。親が離婚して再婚したとかいうのなら、また別の情報を付与して1対多にすべきです。 そもそものデータ管理の考え方に無理があるように思います。
お礼
回答ありがとうございます。 naoto0216さんへの回答で具体例をあげておきましたが、もう少し補足します。 親品番が多数あり、その配下に子品番が構成されています。 子品番は同じ品番で管理されていますが、それらを構成する子品番が全く同じで親品番が異なる場合とか、構成する子品番が違っていて(複数の子品番は同一あり)親品番が異なる場合等があり、多対多の構成と説明した次第です。
- naoto0216
- ベストアンサー率46% (183/391)
A001とC001の子品番が同じですが、このような ケースは実際にあるのでしょうか。 子品番が同じなら親品番も同じになるのかなと。。
お礼
回答ありがとうございます。 A001とC001の子品番が同じですが、このような ケースは実際にあるのでしょうか。 → 下記の様な実態なのです。 あるお客様で”カスタマー1仕様”に対し、A001という品番を付与し、その構成の品番がX001、Y001でした。 カスタマー1仕様というのは、機能を意味します。例を挙げるならば、何かをクリーニングする機能とします。 違うお客様で、上記と全く同じ機能なのに異なる品番(親品番)が付与されてしまうのです。”カスタマー2仕様”でC001という親品番。 その構成はX001,Y001でA001と同じという実態です。 本来ならば、同じ機能(仕様)に対して異なる品番が付与されない構成があるべき姿なのですが、登録されている品番が多数あるので、その変更履歴管理をどうしたらよいものかと思っている次第です。
- msMike
- ベストアンサー率20% (364/1804)
「データの管理をどの様にしたらよいかを教えて」と言われても、「どのようなデータ」か不明だし、一口に「管理」と言っても具体的に何をしたいのかが全く不明だし、・・・ ましてや貴方は Excel初心者みたいだしィ~ これじゃあ、誰も何も・・・
お礼
回答ありがとうございます。 どのようなデータか不明 → 管理するのは品番ということで具体例を挙げています。 「管理」と言っても具体的に何をしたいのかが全く不明 → 具体的には品番の変更履歴管理です。 子供の品番が、いろんな親品番配下に使用されている場合、 それらの変更管理をもれない様にする方法を把握したかった次第です。 excelの表形式で品番管理をするので、その構成に関して、 間違えないで管理可能な構成があれば、アドバイスいただきたいというおもいでした。 Excel初心者 → このサイトで質問するのに初心者とか関係ありますか?
お礼
回答ありがとうございます。 私が提示していない状況まで見透かした回答をいただきまして、 大変参考になりました。 また、 考え方を教えていただきたかったので、最後の内容は本当に助かりました。 いただいたアドバイスを元にがんばってみます(^^)