請求先の管理と請求書作成についての解決策

このQ&Aのポイント
  • 請求先が複数あり、請求内容が案件ごとに異なる場合、どのように請求先を管理し、請求書を作成すれば良いのか悩んでいます。
  • 受注テーブルと請求引当テーブルを使って受注工事と請求の関連付けを行い、請求先ごとに請求内容を管理することができます。
  • 請求書作成時には、受注テーブルと請求引当テーブルを結合し、適切な請求先と請求内容を選択することが重要です。
回答を見る
  • ベストアンサー

請求先

Access 2013 vba 1つの受注された案件で、その売上の請求先が複数になる場合があります。 しかも、その請求先に何を請求するのかは、その場、その場で変わり、決まっていないらしいです。 このような場合に、どのように請求先を1つの受注した工事案件に引き当てれば良いのか、良くわからず、困っています。テーブル構造は恐らく 【受注テーブル】 ・受注ID(Main key) ・受注日 ・依頼元 ・依頼内容 ・受注総合計金額 などなど 【請求引当テーブル】 ・請求引当ID(Main key) ・受注ID (Ex.Key) ・請求金額 ・摘要 ・支払期日(依頼元が当社に支払う期日) ・支払方法 しかし、その明細については、受注テーブルの項目の依頼内容の何になるのかは、その時にならなければわからないのです。それに、請求先が1つしかない場合もあるし、複数に成るのが最後にならないと分からない場合もあります。 この場合、請求書をPGでデータベースからデータを選択して作成する場合、何を選択すれば良いのかわかりません。 このような説明の仕方では、ご回答が難しいかとも思いますが、私も説明に苦慮しています。 実際に、このようなケースを扱ったシステムでは、どんな解決策をとっているのか知りたいです。

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

  • ベストアンサー
noname#212058
noname#212058
回答No.4

回答No.2です > 受注=請求→ n:1 はあっても、1:n は、NG > というのは、どんな業界でもそうなのでしょうか・・・ そんなことはありません。『請求は月締めで会社毎にまとめる。 さらに状況によって(分割納品だったりして)請求が一部 月またぎ することがある』というパターンに遭遇したこともあります。 これですと受注と請求は N:N ですね。 ここらへんは、販売管理システムの "あるある" なので、むしろ 仕様確認時にエンジニアからユーザに確認しておきたい事項です。 解決策はご紹介した書籍を見てほしいのですが、質問サイトで伝え られる程度のヒントだけご紹介します。 受注データの [受注] + [受注明細] という構成になっていると思い ます。これに対して [請求] は、[受注] と直接の関係を持たせずに、 [請求]対象の [受注明細] をチョイスするという構造にします。 [請求]データの作成時に[受注明細]の内容を選べるようにするわけ ですね。 これのもっとも単純な構成はこうです。こうすると、受注と請求の 関係を 1:N にすることができます。   受注テーブル  受注明細テーブル  請求テーブル   受注ID   ← 受注ID           受注明細ID           請求ID     → 請求ID ※[受注明細] テーブルの請求IDは、受注時はNULL。請求時に初めて  値が入ります ※[受注] テーブルと [受注明細] テーブルは 1:N の関係、  [受注明細] テーブルと [請求] テーブルは N:1 の関係になります。  テーブル設計では直接の関係で N:N を作らないのが鉄則です。 もちろん、これは最も単純な形です。 実際には『請求は[受注]を選択して作りたい』などの要件によって、 テーブルに色々な付加情報が付いたり、場合によっては [受注明細] テーブルと [請求] テーブルの間に[引き当て]テーブルが必要にある こともあるでしょう。 また、内部データはこのように作っても、UI 的には請求時に明細を 毎回ひとつひとつ選択していたら大変です。『[受注]ごとまとめて 選択』とか『受注明細の検索機能』の充実が必要になるかと思います。

superwonderful
質問者

お礼

ご回答ありがとうございます。 ご説明を読ませて頂いて、これならば、1受注の工事の請求先を2つの違う請求先に分ける事ができると思いました。 仰るとおり、その振り分け作業を受注明細の全てのレコードに対して1個1個していくと大変な作業になりますが、例えば、ある受注の明細を全て仮テーブルに取込、そこで、チェックボックスなどで選択したものに、請求先IDを引き当てると言う処理をして、そこでチェックされたレコードを請求明細テーブルに格納するというようなやり方はどうかと考えています。 次に、選択済みの受注明細には既に請求先IDがセットされているのですから、2つ目の請求先への引当処理画面では、それらはグレーアウトした表示になって引当自体が出来ないような作りはどうでしょうか。 あと、質問と関係があるので質問させて頂きたいのですが、入金された物の消し込みをスル場合、この請求明細テーブルに対してするのか、それとも、受注明細に対してするのか、このへんはどういう処理の仕方にしたら宜しいでしょうか? よろしくお願いします。

その他の回答 (4)

noname#212058
noname#212058
回答No.5

回答No.2です。 > 例えば、ある受注の明細を全て仮テーブルに~(以下略) 具体的な実装は、システムの要件に従って工夫して頂ければ 良いかと思われます。 ただ『データをコピーして他のテーブルに格納』する処理は、 乱用すると後からデータ更新が必要になったときにコピー先も 更新が必要になって、処理が煩雑になりますのでご注意を。 安易なデータコピーもシステム崩壊原因の "あるある" です。 > 入金された物の消し込みをスル場合~(以下略) この質問が出るということは、失礼ながら質問者さんはまだ 今回作成するシステムの要件の理解が不足しています。もう いちど業務フローを見直して『なぜ、入金消込処理が必要な のか、これは何のために実施するのか』を問い直してくださ い。 これは質問者さんが今作っているシステムの『理解』のため に、質問者さんご自身の手で解決すべき内容かと思います。

superwonderful
質問者

お礼

ありがとうございます。 おっしゃるとおりだとは思います。 今、おすすめになられた本を読みながら、研究しています。 よろしくお願いします。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

受注-請求は必ずしも直結しません 受注-製造(?)-出荷-納品完了-売上計上-請求-回収 の流れになると思うので、 売上計上から請求に流れる時点で、売上伝票(もしくは明細)ごとに 請求先を確定するのが筋ですが請求されるまで請求先がわからないとなると 売上計上-請求保留-請求 といった中間処理が必要になるでしょう。 この場合受注先に管理テーブルに請求先が一意で登録されている場合は 自動で流し、請求先が未登録もしくはなんらかの形で複数登録されている場合は 請求保留になるよう調整し、請求保留から請求には手動で属性変更する ことになるでしょうか。 ただし・・・ 監査や税務的に、一受注先の請求先が複数であるということは 架空取引など不正リスクが内在すると判断される可能性は高いと思います。 本来であれば同じ受注先でも請求先が違うのであれば別受注先として管理すべきです 受注=請求:n対1はあっても1対nはNG。

superwonderful
質問者

お礼

ご回答有難うございます。 受注=請求→ n:1 はあっても、1:n は、NG というのは、どんな業界でもそうなのでしょうか・・・ 依頼してきた会社と請求先が違う場合には、請求先を依頼元として受注データ自体を作り直ししたほうが良いのでしょうか。 ちなみに、私が開発しているのは「建物の工事案件」の管理システムで 受注→工事見積→発注→工事進捗管理→工事完了→精算処理→請求書作成→入金確認処理 となります。 請求先が変わったり、複数になるのは、工事の費用を誰が支払うのかという所で発生します。

noname#212058
noname#212058
回答No.2

大変失礼ながら、私も回答No.1さんと同じ感想を持っております。 データモデル設計(テーブル設計)くらいは完了してからプログラム 製造に入ったほうが良いです。 おそらく『データモデル設計が製造中に破たん』という「典型的な 失敗プロジェクトパターン」になりかけていますよ。 そもそも、質問のような引き当て処理は、別に珍しい仕様でも何で もありません。システム開発ではごくごく普通に見る仕様です。 この程度で設計に困るようでは座学が足りません。いちど在庫管理 や販売管理の設計の知識を入手しておくべきです。 比較的実践的な書籍を紹介します。  グラス片手にデータベース設計~販売管理システム編  梅田 弘之 (著)

superwonderful
質問者

お礼

アドバイスして頂きありがとうございます。 テーブル設計完了して入ったと思いきや、入った後に再度確認したところ、大変重要なイレギュラーを知らされたところです。 典型的な失敗PJにはしたくありませんが、必要な知識を取り入れる事も重要ですね。。。 お話の本、読んでみたいと思います。

回答No.1

ウーン! まだまだ、Accessを起動してシステム開発の実作業に取り掛かるのは早いのでは?その以前のWordなどで、 (1)テーブルを設計する。 (2)入力フォームを設計する。 (3)データの変換・加工要領を設計する。 (4)各種帳票を設計する。 という設計段階ではないのじゃーないでしょうか? 【全体の考え方】  営業が受注した案件は、いわば商品在庫。ですから、その入力は、販売管理における仕入伝票入力のゆなもの。売上は、あくまでも在庫商品が納品された時点で発生するもの。よって、その入力は売上伝票処理に相当。その場合、商品在庫テーブルの販売単価と売上伝票の販売単価とは常に一致する訳ではありません。それぞれの単価は、それぞれに管理。もって、その差を把握することもシステムの課題。 >売上・納品書を発行する場合、売上商品をどのように選択するのか判りません。  それは、商品在庫=営業が受注した案件を参照。ただし、販売単価はリンクさせない。あくまでも、商品在庫の販売単価は予定。 【全体の考え方を基に設計を先行】 10 INPUT A, B 20 C = A + B 30 PRINT C 僅かに3行のプログラム。だが、そこには入力データの種類と要領が明示されています。次に、入力したデータの加工(演算)の要領・手順が示されています。そして、最後に結果の出力。目の前の案件も、これがちょっと複雑になっただけ。だが、その複雑さは、入力⇒演算⇒出力の各段階の具体的な設計の必要性を排するもんじゃーないです。むしろ、複雑だからこそ設計が大事。  とにもかくにも、テーブルを設計し、それに準じた入力フォームもデッサン。それで果たして月次請求書が発行できるのか?そのために必要なデータの変換・加工手順はどのようか?最後に、各種レポートの雛形もWordで設計。Accessを起動してシステム開発の実作業に取り掛かるのは、これらが全て終わってから。  と、マイクロソフトのマニュアルは言っています。

superwonderful
質問者

お礼

ご回答ありがとうございました。 仰るとおり、請求の部分が不透明なまま、製造に入ってしまい、その途中で請求先が一受注工事に対して複数になることがあると聞かされ、大変困ってしまっています。 製造前の設計の重要さは認識しておりますが、短い期間での製造を強要され、私としてはどうしようもない事情があります。 その結果、請求先が複数ある場合のテーブル設計のやり直しをするか、請求先が複数の場合には、新規で受注案件レコードを作成し、それまで入力した部材注文明細と工事発注明細のレコードをコピーするか・・・の対策を考えています。 請求先が複数になる場合には、請求テーブル明細などを作るとなると、請求先ごとの請求金額はわかっても、その請求の明細がその場その場の話し合いで結局変わるので、どのように作れば良いのかわかりません。 1受注に対して、請求先が2つになっても、もしかすると、その2つの請求先の工事は一つの工事になるかもしれません。 ようは、支払を2者で分担するというようなやり方です。 ですので、請求先2つだからといって、工事を別々のものとして管理するようなテーブル設計をして良いのかどうかもわかりません。 何か良いアドバイスがあればよろしくお願いします。

関連するQ&A

  • 請求と入金のテーブルの作成の仕方(アクセス)

    ただいま、物件毎の修理の依頼を受けて、その修理工事をしたあと、依頼先に請求する処理のためのテーブルを作っています。 まず、見積テーブル・見積明細テーブルというのを作り、 次に、入金テーブル・入金明細テーブルというのを作りました。 【見積テーブル】 ・見積ID(主Key) ・物件ID *(ExKey) ・工事費用合計(←工事費用テーブルより取得) ・材料仕入れ費用合計(←材料知り入れ費用テーブルより取得) ・会社利益 ・支払方法 ・1回目支払開始日 ・2回目以降の支払日 ・支払回数 【見積明細テーブル】 ・見積明細ID(主Key) ・見積ID(ExKey) ・請求先名 ・請求先毎の請求額 【入金テーブル】 ・入金ID(主Key) ・物件ID * (ExKey) ・請求金額合計 ・入金金額合計 ・差額 ・入金完了日付 【入金明細テーブル】 ・入金明細ID(主Key) ・入金ID(ExKey) ・請求先名 ・入金額 ・入金日 *物件IDとは、工事物件の依頼内容を格納しているテーブルの主キーです。  物件ID : 見積ID = 1: 1 物件ID : 入金ID = 1: 1 の関係です。 このような感じで作りましたが、見積明細テーブルの各請求先毎の支払状況を見る上では、その下の入金明細テーブルでは不十分です。 これをうまく改善するテーブル設計の方法を教えてくだい。 よろしくお願いいたします。

  • 受注明細テーブルについて

    Access2013 vba 今工事関係のシステムを作っています。 ・工事受注の情報を入力する画面A ・工事部材の注文明細を入力する画面B(帳票・サブフォーム) ・工事の管理情報を入力する画面C(単票・メインフォーム) ・工事の発注明細を入力する画面C2(帳票・サブフォーム) ・受注明細画面D(帳票フォーム) とあるとして 【A】受注情報管理 ・受注ID(main key) ・受注日 ・依頼内容 ・部材注文合計金額 ・発注合計金額 【B】部材注文明細 ・部材明細ID2 (main key) ・受注ID(foreign key) ・品番 ・商品名 ・単価 ・数 ・摘要 【C】工事管理情報→依頼先会社毎に、受注IDに紐づく ・工事管理ID (main key) ・受注ID (foreign key) ・依頼先会社ID(foreign key) ・工事開始日 ・工事終了日 【C2】工事管理─仮発注明細 ・明細ID4(main) ・工事管理ID ・項目名 ・単価 ・数量 ・摘要 受注明細を、部材注文明細と仮発注明細から作成するやり方を考えました。 BとC2のレコードから、受注IDをキーにして、全てのレコードを以下のDの受注明細テーブルに格納する・・・。この時、B, C2と、Dは非同期→すると、もし、部材明細や仮発注明細が変更されると、Dが連動してその変更内容が反映出来ません。このやり方が良いのかとうか、いまいちわかりません。ご助言をお願いします・・・。 【D】受注明細 ・受注明細ID5(main) ・受注ID ・項目名 ・単価 ・数量 ・摘要 ・請求ID

  • accessのレポートで困ってます。

    受注伝票を印刷するためのレポートを作っていますが 複数商品を購入した際に購入商品を全て表示させる方法が分かりません。 Access2002で受注管理のテンプレートを 自分なりにカスタマイズして使っています。 受注に関するテーブルは3つあります。 関連するフィールドは下記の通りになっています。 【受注】  受注ID … key   【商品】  商品ID … key  商品名  単価 【受注明細】  受注明細ID … key  受注ID … 受注テーブルの受注IDと一対多  商品ID … 商品テーブルの商品IDと一対多  数量  単価 レポートには、複数商品を購入した場合に 全ての商品名と購入数、価格を表示させたいと思います。 どうぞよろしくお願いいたします。

  • ACCESSで計算結果を格納する方法

    いつもおせわになっております。同じ案件名で質問したのですが、説明がつたなすぎたので質問しなおします。 メインのテーブルの構造は、受注先、作業項目、受注名(主キー)、担当者(これはなくそうと思っています)、受注名、注文日、完了日、(見積金額、請求金額、入金金額、外注支払い、粗利益)とあります。 サブのテーブルは、ひとつの案件の中に小分けの案件があるので、 ナンバー(オートナンバー/主キー)受注名、サブタイトル、ページ数、希望金額、取り掛かり日、作成終了日、提出日、締め切り日、支払先1、支払金額1(支払先1への支払い金額です)、支払先2、支払金額2、支払先3、支払い金額3、請求日、請求金額、入金日、入金日、見積もり、調査、報告書(最後の三つは、やったかどうかのチェック用のチェックボックスです) メインテーブルとサブテーブルはたしか受注名で繋がっています。 メインテーブルの単票フォーム内のサブフォームに、サブテーブルを帳票形式で表示して、個別案件を入力するようにしました。サブフォーム内のレコードの各案件の希望金額の合計や支払金額、粗利などを計算して(Sumや足し算引き算)、サブフォーム内のテキストボックスに表示させています。これが、メインテーブルの()の中身にあたります。 これをなんとかして(サブフォーム内のコマンドボタンを押すなど?して)計算結果をメインフォームのフィールドに転送したいのですが、方法はないでしょうか? できれば、いまアクセスのサイトや本を見過ぎていっぱいいっぱいなのでわかりやすく説明していただければ幸いです。 。

  • ACCESS2003を使って請求・納品伝票を作っています

    ACCESSの素人です。 本を見ながらこのたびACCESS2003で請求・納品伝票を作っているのですが、クリエで行き詰っています。。 どんな請求・納品伝票を作ろうとしているかご説明します。 現在手書きで使っている伝票(請求書控え、請求書、納品書、納品書控えの4種類を手書き複写式)そのもののフォームをワードで打ち直してワード文章にしてあります。 その原稿にACCESSで打ち込んだデータをはめたいと思っています。 フォームは手書きをする要領(点数計、小計合計、正味合計などは自動で計算できるようにしたいと思っています)で画面上確認しながら打てるようにしたいと思っています。 現段階ではテーブルをようやく作ることができました。 商品マスター、受注明細マスター、伝票情報マスターを作りました。 内容は商品マスターは商品の名称と価格を入れています。 受注明細マスターは受注明細ID、受注ID、顧客ID、数量、割引 伝票情報マスターは顧客ID、受注ID、あとは請求先の送付先や宛名などです。 これらをどういうクリエでつないだらいいのかわかりません。。 そのためここで今本とにらみ合いをしていますが、どうしても打開策が見つかりません。。 どうかご教授くださいますようお願いいたします。。

  • 請求書の消費税について

    現在フリーで作業をしているのですが、請求書の消費税についてご質問です。 現在の状態は、Aの案件は5000円。Bの案件は10000円。Cの案件は…という形です。 そしてひと月の受注文をまとめて請求書を発行するのですが、その際の消費税の記載はどうすれば良いでしょうか。 税金は先方が支払います。 161,244円を請求し、振り込まれた価格は149,120円でした。 (ちなみに請求した161,244円は案件の合計金額です。) 向こうが税金を支払う場合は消費税の記載は不要でしょうか? あと、上記の場合だと5%じゃないですよね?6%と7%で計算してみたのですが支払い価格の149,120円にならなかったんですが・・・ 消費税を記載する場合は何%にすれば良いでしょうか? 初歩的な質問で恐縮ですが、ご回答宜しくお願い致します。

  • KDDIの請求書

    KDDIの請求書の支払い期日に払えなかった場合は振込用紙がついてる回線停止のお知らせはくるのでしょうか 現在の支払い方法は 一時的に請求書支払いになってます

    • 締切済み
    • au
  • Access、同じテーブルの2つの項目対他のテーブルで1つの項目のリレーションは可能?

    Accessで販売管理をしています。 以下のテーブルを作成し(*は主キーです)、 [売上T]  [商品M]  [顧客M]  [受注T] *売上NO  *商品ID  *顧客ID1  *受注NO 商品ID   商品名    *顧客ID2  商品ID 日付    顧客ID1     顧客名    受注日 金額    顧客ID2            受注金額        受注先1        受注先2 参照整合性にチェックを入れリレーションでつないでいます。 リレーションシップは下記のとおりです。 [売上T]商品ID―[商品M]商品ID―[受注T]商品ID [商品M]顧客ID1及び2―[顧客M]顧客ID1及び2―[商品M]受注先1及び2 ここで顧客と受注先が重複することもあるので、顧客Mから顧客ID及び受注先IDの2つのテーブルにリレーションシップを設定しているのですが、 クエリで  [受注T]受注NO及び受注金額、[顧客M]顧客名で抽出したところ、 5000件以上[受注T]にデータがあるはずのものが、1200件ほどしか抽出できませんでした。 ちなみに[顧客M]と[受注用顧客M]というまったく別のテーブルを作成し、 [商品M]受注先1及び2―[受注用顧客M]顧客ID1及び2 とリレーションを作成し、クエリで抽出するとうまくいきました。 しかしこの方法だと、[顧客M]と[受注用顧客M]という2つのテーブルを管理しなければならなくなるので面倒です。 そこで質問です。 同じテーブルの2つの項目対他のテーブルの1つの項目とでは、うまくリレーションが設定できないのでしょうか。 もし出来ない場合、[顧客M]と[受注用顧客M]の2つのテーブルを管理しなければならない訳ですが、 なんとか簡単に管理できる方法(ひとつのテーブルを変更すると簡単にもうひとつが変更できる設定)はないでしょうか。 非常にわかりにくく長い文章で申し訳ありません。 VBA等はさっぱりわかりませんので、普通の設定の範囲内で、できるかどうかよろしくお願いします。

  • 請求書の出し方が良く分からなくて困っています。

    ホームページ制作料金の請求書の出し方についての質問です。 当方、個人でホームページ制作しているのですが 依頼主様から、ホームページ制作料金を分割にして欲しいといわれました。 詳細は料金を着手金としてはじめに半額、 納品後に残りの分を支払うというものです。 その場合には請求書をどのように出せばいいのでしょうか? 1、はじめに全額の請求書を出せばいいのか?、 2、その都度出せばいいのか? 3、はじめに全額の請求書を出してその都度出すのか? 分かりかねています。 それともう一点なのですが、 残金の支払いについてですが、料金支払い後に納品したいと思っているのですが、 依頼主様から「決済の都合上支払いは月末になるので 納品後の支払いになります」とのことでした。 ホームページ制作の場合どこも先払いが多いとおもわれるし、 今までは先に支払いという形をとっていたので このような支払方法では少し怖い気もするのですが、 大体そのようなものなのでしょうか? アドバイスよろしくお願いします。

  • 取引先が支払いをしてくれない

    期日を過ぎても支払いがなく、担当者と連絡も取れません。 大手の企業なので経理の部署があり、直接経理に電話してもいいものでしょうか? また、期日はこちらが決めたものではなく、取引先の経理の都合で一方的に決められた期日です。 大手の企業で経理の部署があり、支払日なども決められているのに、振込を忘れてしまうなどということはあるのでしょうか? 私が今まで仕事をしていた会社ではそのようなことはありませんでしたので、不思議に思ってます。 もう1点質問です。 税金対策で次から次へと新しい会社を作っている企業があります。 「今回の請求書はA会社に送って。」「今回は、B会社に請求して」と指定されるのですが、ここもまたおかしな会社で、振込が遅れたり、こちらが再三の請求をしなければ支払わないなどということがたびたびあります。 経営者が直接仕事を依頼してきて、請求先がそのたびに異なり、振り込むのも「会社」ではなく経営者個人の名前ということもあります。 こういった企業、一般の企業ではありえないと思っていたのですが、気にする必要はないのでしょうか?