dポイントプレゼントキャンペーン実施中!

見積書とデータを連動させて自動入力していますが、
データベースのほうをユーザーフォームを作って入力させるつもりです。
その時、物件名は1つで製品名(内訳)が1種類から6種類くらいまで記入しなければいけない場合、
データベースのほうに、内訳の数だけ行を増やして書き込むにはどのようにしたらいいのでしょうか?
行を増やすという考えも、素人考えなので他に効率のいい方法が思いつかないのですが・・・。
ちなみにデータベースは、Aから
見積/請求/物件No/見積日付/正式名称/担当者/受注日/納品日/物件名/製品名/数量/単価/合計

製品名ごとに数量、単価、合計があるのでこちらにも反映してきます。

初心者のため、質問自体ちゃんとできているか不安ですがご教授くださいませ。

「エクセル ユーザーフォームからデータに書」の質問画像

A 回答 (3件)

>行を増やすという考えも、素人考えなので他に効率のいい方法が…



そういうデータベースは、アクセスとかを使って

DB1:物件一覧のデータベース
物件No,物件名称,日付,担当者

DB2:物件ごとの製品データベース
物件No,子番号,製品番号,数量,単価,納入日

などといった具合に、効率的にデータベースを設計して作っていく事もできます。




でも今は、とりあえずお手軽にエクセルで作成したいご相談ということなので、べたべたの表形式で丁寧に作成していくしかありません。

作成例:
物件No,物件名称,日付,子番号,製品名,製品数量,製品単価,金額合計
A001,あれこれ,7/27,A00101,製品1,5,300,1500
A001,あれこれ,7/27,A00102,製品2,4,400,1600
A001,あれこれ,7/27,A00103,製品3,2,500,1000
A001,あれこれ,7/27,A00104,製品4,1,300, 300
A002,それどれ,7/29,A00201,製品1,4,300,1200
A002,それどれ,7/29,A00202,製品4,1,300, 300
A002,それどれ,7/29,A00203,製品5,1,600, 600

といった具合に手抜きせずに表を埋めていくよう、丁寧にマクロを組んでいくだけです。



>製品名ごとに数量、単価、合計があるのでこちらにも反映

製品ごとの集計は「データベースに反映」するんじゃなく、記録した基本のデータベース1本だけを元にして、別途集計するカンジで作成します。
通常はピボットテーブルレポートなどを使い、さくっとエクセルに集計させて作成してください。

この回答への補足

keithinさま
ご丁寧に教えてくださってありがとうございます。
教えて下さったように、表を作成するとします。
その際にフォームで入力すると、「製品名」「数量」「単価」「金額合計」の部分は、6行テキストボックスを作ると、データに入力する際に1行のときは1行作成してくれればいいのですが、2行、3行のときは、その数に応じて行をその分だけ増やしてくれるようにできるのでしょうか?
それができるのであれば、入力間違いなどなくてよさそうなのですが・・・。
何度も質問して、すみません。

補足日時:2014/07/27 17:23
    • good
    • 0

ユーザーフォームに作成するのは



1.一回の入力で物件ごと一回だけ記入すればよい項目
  物件No,物件名称,物件の日付,物件の担当者 etc

2.一回の入力、一つの物件ごとに複数件を記入しなきゃならない項目
  製品番号、各製品の数量、単価、納入日 etc

という具合に分かれるハズですよね。

たとえばテキストボックスの1から5はタイプ1の記入内容
たとえばテキストボックスの6から35までがタイプ2の記入内容
といった具合にアナタがやらなきゃならないことを整理します
タイプ1の記入内容を、ユーザーフォーム上で製品の件数分繰り返し入力するなんで無駄な事は、勿論する必要は無いってことです。




もうちょっと噛み砕いてお話しすると。
たとえばテキストボックスの6以降、何個かずつが製品1つ1つに対応する「製品ごと入力するデータのグループ」という事になります。
たとえばテキストボックスの6に記入があれば、6から10まで1グループ分入力した、テキストボックスの11に記入があれば、11から15までもう1グループ入力された、16に入力すれば16から20まで入力があった、17が空ならそこまで3グループ分入力があったんだと判る、という事が判りますね?


たとえば3グループ分の製品データが入力されたとわかったら、合計3回
A列~E列にタイプ1の記載内容を記入
F列~J列にグループ1の記載内容を記入
振出しに戻って次の行に
A列~E列にタイプ1の記載内容を再記入
F列~J列にグループ2の記載内容を記入
次の行にまた
A列~E列にタイプ1の記載内容をもう一回記入
F列~J列にグループ3の記載内容を記入

といった具合にして、エクセルのリストに3行追記します。
    • good
    • 0

一案ですが、データを保存するシートを2つにしては如何でしょうか。


物件一覧
見積/請求/物件No/見積日付/正式名称/担当者/受注日/納品日/物件名
製品一覧
物件No/製品名/数量/単価/合計
製品データ
製品名/単価

入力フォームは、天賦のように
フレームで分けておけば、入力画面もわかりやすいかと

登録のボタンのコードは考えてみてください。
そんなに複雑ではないと思います。
「エクセル ユーザーフォームからデータに書」の回答画像2
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!