プロが教えるわが家の防犯対策術!

ただいま、物件毎の修理の依頼を受けて、その修理工事をしたあと、依頼先に請求する処理のためのテーブルを作っています。
まず、見積テーブル・見積明細テーブルというのを作り、
次に、入金テーブル・入金明細テーブルというのを作りました。

【見積テーブル】
・見積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
の関係です。

このような感じで作りましたが、見積明細テーブルの各請求先毎の支払状況を見る上では、その下の入金明細テーブルでは不十分です。
これをうまく改善するテーブル設計の方法を教えてくだい。

よろしくお願いいたします。

A 回答 (10件)

>請求先から複数の依頼案件にまたがって入金されたりすることもあるので、


>それをシステム設計で自動的に、
>顧客がどの依頼案件の支払なのかを作りこむことは出来ないのでしょうか?

もちろん出来るが、絶対に挑戦してはいけない!

>つまり、このようなカラムをテーブルに作れば、
>少なくとも請求と入金の日々の記録を付ける事は可能ということでしょうか?

全く、違います。記録するのは、売上と入金のみです。ですから、用意するテーブルは、次のようです。

[得意先台帳]

ID・・・・・・・・・1
名前・・・・・・・・鈴木建設
請求締め日・・・・・25日
前月期首繰越額・・・12,000円
前月売上額・・・・・30,000円
前月入金額・・・・・20,000円
前月調節額・・・・・-5,000円
当月期首繰越額・・・17,000円
当月売上額・・・・・20,000円
当月入金額・・・・・20,000円
当月調節額・・・・・-5,000円

得意先別に売上・入金状況を月次で締切・繰越処理した結果を反映する。

課題1、システム起動時得意先別期首設定アプリケーション。
課題2、月次締切・繰越処理アプリケーション。
課題3、先月繰越再処理アプリケーション。
課題4、月次締切レポート。

このように月次締切・繰越処理はバックエンドであるテーブルのテーマではなくフロントエンドであるアプリケーションの役割です。なお、ここに言う締切・繰越処理=請求締切処理ではありません。売上・入金の月次締切処理と請求書管理とは少し目的と内容が違います。

[得意先別売上台帳]

ID・・・・・・・・・1
得意先_ID・・・・・・1
年月日・・・・・・・2014/10/10
区分・・・・・・・・0:売上、1=値引、・・・9=調節
金額・・・・・・・・20,000円
摘要・・・・・・・・物件A代金

[得意先別入金台帳]

ID・・・・・・・・・1
得意先_ID・・・・・・1
年月日・・・・・・・2014/10/10
区分・・・・・・・・0:入金、1=返金、・・・9=調節
金額・・・・・・・・20,000円
摘要・・・・・・・・物件A代金

さて、これでは見積りテーブルとの関連は皆無。でも、それで良いのです。あくまでも、売上と入金との関係を把握するのが目的。見積りは、あくまでも見積りなんです。そこを関連付けようとすると、永遠に完成できないでしょう。

もう一つ。得意先テーブルには”請求締め日”以外に請求に係わる列が見当たりません(ちょっと、、修正しました)。それは、”請求書発行アプリケーション”さえあれば解決できるからです。もちろん、請求書発行に当たっては、得意先ごとに設定した締め日に沿って請求残、新規売上、新規入金を求める必要があります。ですから、月次の売上や入金を加算・減算して求めてはダメです。請求履歴等は、あえてテーブルに記録しなくても紙媒体で残しておけば良いでしょう。少なくとも、そういった設計で顧客からクレームが出たことはありません。

【お詫び】先の回答の[請求]を[売上]と訂正しました。こっちの方が一般的かと思います。なお、先の回答で示したのは請求書発行アプリケーションのそれです。得意先別売上・入金元帳のそれではありません。

販売管理アプリケーションを開発したのは1996年のこと。ちょっと、記憶が怪しいところがあるかと思いますが、そこはご勘弁を。

この回答への補足

ご回答ありがとうございます。かなり具体的に回答していただき大変ありがたいのですが、私には難易度高く少し混乱気味です。以下、コメント・質問を書かせて頂きますので、お返事をよろしくお願いいたします。m(__)m

> >請求先から複数の依頼案件にまたがって入金されたりすることもあるので、
> >それをシステム設計で自動的に、
> >顧客がどの依頼案件の支払なのかを作りこむことは出来ないのでしょうか?
>
> もちろん出来るが、絶対に挑戦してはいけない!

↑■質問
(1) これに挑戦するとドツボにハマって抜け出せないということでしょうか?


> 全く、違います。記録するのは、売上と入金のみです。
> ですから、用意するテーブルは、次のようです。
>
> A.[得意先台帳]
>
> 01,ID・・・・・・・・・1
> 02.名前・・・・・・・・鈴木建設
> 03.請求締め日・・・・・25日
> 04.前月期首繰越額・・・12,000円
> 05.前月売上額・・・・・30,000円
> 06.前月入金額・・・・・20,000円
> 07.前月調節額・・・・・-5,000円
> 08.当月期首繰越額・・・17,000円
> 09.当月売上額・・・・・20,000円
> 10.当月入金額・・・・・20,000円
> 11.当月調節額・・・・・-5,000円

↑■質問
(2) 「得意先台帳」テーブルは、得意先テーブルのことですか?
(3) Aは、親テーブルで、B, Cの各区分毎の締め日までの金額の合計値を自動計算して05, 06, 07, 09, 10, 11にセットしているのですか?
(4) Aの04, 08は、自動計算でセットする値ですか?
(5) 売上と入金だけを入力しなさいと言うのはどういういみですか?それは後述のB, Cのテーブルの画面で入力するという意味ですか?
(6) 07, 11の調節額とは何のためにあるのでしょうか?例えば、ディスカウントをするとか?

> 得意先別に売上・入金状況を月次で締切・繰越処理した結果を反映する。
>
> 課題1、システム起動時得意先別期首設定アプリケーション。
> 課題2、月次締切・繰越処理アプリケーション。
> 課題3、先月繰越再処理アプリケーション。
> 課題4、月次締切レポート。
>
↑■質問
(7)起動時にする得意先別設定処理とは何ですか?
(8)先月繰越再処理とは何ですか?


> B.[得意先別売上台帳]
>
> ID・・・・・・・・・1
> 得意先_ID・・・・・・1
> 年月日・・・・・・・2014/10/10
> 区分・・・・・・・・0:売上、1=値引、・・・9=調節
> 金額・・・・・・・・20,000円
> 摘要・・・・・・・・物件A代金

↑■質問
(9)区分の2~8はどんな区分がきますか?
(10)Bは明細テーブル、Aは親テーブルという意味ですか?
  得意先_ID:ID = 1:多ですか?


>
> C.[得意先別入金台帳]
>
> ID・・・・・・・・・1
> 得意先_ID・・・・・・1
> 年月日・・・・・・・2014/10/10
> 区分・・・・・・・・0:入金、1=返金、・・・9=調節
> 金額・・・・・・・・20,000円
> 摘要・・・・・・・・物件A代金

↑■質問
(11) (10)と同じ質問です。得意先_ID:ID = 1:多ですか?
(12) (11)が「はい」なら、Cの複数行の締め日までの合計金額がAの入金金額に表示されるという意味ですか?
(13) 今年の売上の合計値は、Bの売上額を合計で、今年の入金の合計値は、Cの入金額を合計するで良いですね?


> さて、これでは見積りテーブルとの関連は皆無。でも、それで良いのです。
> あくまでも、売上と入金との関係を把握するのが目的。見積りは、あくま
> でも見積りなんです。そこを関連付けようとすると、永遠に完成できない
> でしょう。
>
> もう一つ。得意先テーブルには”請求締め日”以外に請求に係わる列が見当たりませ
> ん(ちょっと、、修正しました)。それは、”請求書発行アプリケーション”さえあ
> れば解決できるからです。

↑■質問
(14) 請求書発行アプリケーションってなんですか?どんな事をするのですか?

> もちろん、請求書発行に当たっては、得意先ごとに設定した締め日に沿って
> 請求残、新規売上、新規入金を求める必要があります。ですから、月次の売上
> や入金を加算・減算して求めてはダメです。

↑■質問
(15) すみません。これだけの説明では良く意味がわかりませんので、ご面倒かと思いますが、具体的にご説明して頂けると大変助かります。

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

途中から失礼します。



>請求先から複数の依頼案件にまたがって入金されたりすることもあるので、
>それをシステム設計で自動的に、
>顧客がどの依頼案件の支払なのかを作りこむことは出来ないのでしょうか?

ここの部分だけですが、件数が少ない(5件とか)場合は
なんとかなる場合もあります。

が、

実体験から、
1・条件を満たす複数の組み合わせが出来る場合が多い。
2・件数が多いと時間が掛かりすぎて無理。2のn乗の組み合わせから探すことに、nは件数。
(出来たとしても1の問題があります)
3・振込手数料の問題
(通常は手数料を振込元が負担していたがタマに手数料を差し引いた額になる)
(経由する金融機関次第で手数料が変わる。)
(普段は都銀→都銀、タマに「じゃアタシがついでに振り込んどくね」で信金→都銀)
4・消費税の演算(誤差)の解釈の違いから1円差でヒットしない、切り上げ・四捨五入とか。
5・その他、作業・納品などに問題があって・・等々などなどナドナドで無理でした。

で、
請求書には一意の番号を、
請求書の中の明細も全てを通じて一意の番号となるようにしておきます。
入金額に疑問がある場合には先方の経理担当に電話して
どの請求書番号(請求明細番号)についての入金なのかを確認していました。
しっかりした経理なら応えてくれるはずです。
非常にアナログ的ですが、消しこんでゆく方法は他に無いのでは?と思います。

この回答への補足

ご説明ありがとうございます。


工事の依頼で依頼No作成(一意)→見積で複数枚→請求先が複数→入金と支払の管理の場合
弊社が作成する見積の相手先は、
(1)不動産業者、
(2)建物のオーナー、
(3)入居者、
(4)保険会社などです。

また、工事に対する材料の発注・支払があり、
下請け会社に工事の依頼もしますので、その下請けからの見積の金額も登録しなくはいけません。

入金と支払の管理は、先ほどの「f_a_007」さんのご説明でなんとなくわかりかけていますので、実際に作ってからまた質問するという手もあるかと思いますが、
・依頼
・見積
・材料発注
・下請け会社の管理
の部分も考えなくてはいけません。

【依頼テーブル】依頼NO
【見積親テーブル】見積親NO
【見積子テーブル】見積子NO

この場合の見積親テーブルには
【見積親テーブル】
・見積No.
・依頼No.
・見積作成日付
・(a)不動産見積額合計
・(b)オーナー見積額合計
・(c)入居者見積額合計
・(d)保険会社見積額合計
・(e)部材発注合計
・(f)下請会社見積合計


明細テーブルは、上の(a)~(f)のそれぞれに対して、別々の明細テーブルを作成し、それらの親テーブルは「見積親テーブル」一個を使うという感じの方がよろしいでしょうか?
または、(a)~(f)のそれそれに対する親テーブルを作り、その各親テープルの情報から合計金額を見積親テーブルに設定するような仕組みを作るのがいいのでしょうか?

分からないことが多くて質問もあれこれとしてしまいまして、すみません。

以上、よろしくお願いします。

補足日時:2014/10/28 17:39
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
上の補足の質問は、最初の質問から本題がそれてきた内容になっていますので、新しい質問でアップさせて頂きました。

こちらについては、現在は会社で手作業でエクセルを使いながらご指摘の作業をしています。
恐らく、当座はこのやり方をしていくと思いますが、なんとか先では入金・出金ぐらいはアクセスで管理出来るようなものを作りたいです。

>請求書には一意の番号を、
>請求書の中の明細も全てを通じて一意の番号となるようにしておきます。
>入金額に疑問がある場合には先方の経理担当に電話して
>どの請求書番号(請求明細番号)についての入金なのかを確認していました。
>しっかりした経理なら応えてくれるはずです。
>非常にアナログ的ですが、消しこんでゆく方法は他に無いのでは?と思います。

どうもありがとうございました。

お礼日時:2014/10/31 21:46

繰越手続き要領は、一つではないかもしれません。



[繰越記録]

締め日
得意先_ID
前月繰越額
売上額
入金額

こういうテーブルを用意し3ヶ月程度保存するというのも手です。

[各種設定]

現繰越し日
消費税額

Accessのテーブルは、主に3つに分類されます。

1、随時更新される伝票等。
2、得意先マスター等。
3、アプリケーションが参照するデータ。

3番目のデータには消費税率等などがあります。

その他の疑問の答え探しは、まあ、実際にアタックする時で良いかと思いますよ。

この回答への補足

ご説明大変ありがとうございます。
今までの説明で、なんとなくわかりかけていますが、f_a_007さんのご説明のされ方は、私の質問に全部答えないけども、なんとなくその先を考えつつ必要なことを言われるという、私にとってはちょっと高度な感じで、しかも、範囲が広い・・・(^_^;)

恐らく、推測しますに、私の質問をご覧になられて、なんとなくわかってるなと思われて、答えずにひとまずやらせて考えさせようと思われてる節も感じられます。なかなか、厳しい先生とお話をさせてもらってるようで、勉強になります。

ひとまず、これからも考えつつ、この質問は少しの間、クローズせずに何かありましたら、また、ここに質問を入れさせていただきます。もし、クローズした場合には、改めて質問を入れますので、よろしくお願いします。

m(__)m

補足日時:2014/10/28 16:23
    • good
    • 0
この回答へのお礼

いろいろと詳しい説明をしていただいてありがとうございました。大変参考になりましたし、もっといろいろと吸収していかないといけないと実感しました。

また、実際に作成していきながらつまづいたら質問させていただきたいと思います。

よろしくお願いします。

お礼日時:2014/11/01 23:48

補足:初回締切処理と再締切処理との区別の必要性。



初回締切処理で、前月欄が当月欄のそれに更新されます。再締切処理は、それが必要ありません。なお、締め切り後の動態=当月欄になるわけですが、その集計はしていません。当月集計処理を連続して動かせば事足りるからです。

<記憶が間違っていたら陳謝!18年も前のことだから・・・>

この回答への補足

すみません、ここの説明、よくわかりません。申し訳ありませんが、実例を出してご説明お願いします。m(__)m

補足日時:2014/10/28 16:16
    • good
    • 0

Access のプログラミングなんて1996年以来。

しかも、30分ばかりで書きなぐったのでコードは洗練されていないかも。でも、質問者の<締切処理とは?>という疑問に応えることは出来たかも・・・。なお、あくまでも私流ですので、DBLookup()、DBSelect()、StopMsg()、Verify()、GetDate()などを用いています。いずれも、UNIX版データベース言語だったInformix4GLを模したものです。結構、<見ただけで判る>という書き方だと思いますよ。

Option Compare Database
Option Explicit

Private Sub コマンド_売上_入金_月次締切処理_Click()
  Dim StopNow      As Boolean
  Dim Answer      As Integer
  Dim I         As Integer
  Dim intCusttomerCount As Integer
  Dim dteNowShimebi   As Date
  Dim dteNewShimebi   As Date
  Dim dteFrom      As String
  Dim dteTo       As String
  Dim lngCustomerID()  As Long
  Dim strSQL      As String
  Dim strWhere     As String
  Dim strWhere_U0    As String ' <-- 区分数に対応
  Dim strWhere_U1    As String ' <-- 区分数に対応
  Dim strWhere_N0    As String ' <-- 区分数に対応
  Dim strWhere_N1    As String ' <-- 区分数に対応
  Dim curUriage     As Currency
  Dim curHenpin     As Currency
  
  ' ------------------------------------------------
  ' 新締め日の参照
  ' ------------------------------------------------
  dteNowShimebi = DBLookup("SELECT 現締め日 FROM 各種設定", "1900/01/01")
  dteNewShimebi = Me.新締め日
  If dteNowShimebi = "1900/01/01" Then
    StopMsg "[各種設定].[現締め日]を設定して下さい。"
    StopNow = True
  Else
    If dteNewShimebi = dteNowShimebi Then
      Answer = Verify("当月締切処理を再度実行しますか?")
      StopNow = CBool(Answer = vbKeyNo)
    End If
  End If
  ' ------------------------------------------------
  ' 締切処理開始
  ' ------------------------------------------------
  If Not StopNow Then
    ' ------------------------------------------------
    ' [得意先台帳].[ID] を配列変数に読込む
    ' ------------------------------------------------
    strSQL = "SELECT ID FROM 得意先台帳"
    lngCustomerID() = DBSelect(strSQL)    ' [得意先台帳].[ID]を取得
    intCustomerCount = UBound(lngCustomerID) ' 配列の添字の最大値を取得
    ' ------------------------------------------------
    ' 締切処理の開始日と締め日を確定
    ' ------------------------------------------------
    dteFrom = "#" & GetDate(dteNewShimebi, 0, 1) & "#"
    dteTo = "#" & GetDate(dteNewShimebi, 1, 1) - 1 & "#"
    ' ------------------------------------------------
    ' 得意先別締切処理を実行
    ' ------------------------------------------------
    For I = 0 To intCustomerCount
      '
      ' 当月売上伝票の種目別集計
      '
      strSQL = "SELECT SUM(売上金額) FROM 売上伝票"
      strWhere = " WHERE 得意先_ID=" & lngCustomerID(I) & _
            " AND 日付 BETWEEN " & dteFrom & " AND " & dteTo
      strWhere_U1 = strWhere & " AND 区分=1"
      strWhere_U2 = strWhere & " AND 区分=2"
      curUriage = DBLookup(strSQL & strWhere_U1, 0)
      curHenpin = DBLookup(strSQL & strWhere_U2, 0)
      '
      ' 当別入金額の種目別集計(略)
      '
      
      '
      ' [得意先台帳]の繰越し等更新(略)
      '
    Next I
  End If
  ' ------------------------------------------------
  ' [各種設定].[現締め日]を更新
  ' ------------------------------------------------
  If Answer <> vbKeyYes Then
    strSQL = "UPDATE 各種設定 SET 現締め日=" & dteTo
    DoCmd.RunSQL strSQL
  End If
End Sub

この回答への補足

ご回答ありがとうございます。

プログラムで見ると、わかりやすいですね。大変参考になります。

私も経理について詳しくなくて、基本的なことでの質問をしてしまい、大変申し訳ありません。昔のことなのでご記憶にないかもしれませんが、もし、わかりましたらご回答よろしくお願いします。


以下、質問内容です。

1. 「各種設定」のテーブル項目仕様ですが、この中には、当社の締め日の項目があると理解してよろしいですか?その他には、どのような項目設定がありますか?

2. 「新締め日の参照」の処理について
 (1) DBLookupで取得している値は
  各種設定テーブルから、現締め日が「1900/01/01」のものを取得しているのは、締め日が未設定の物がある場合、この月次締切処理ができませんので、処理を中止するためということでよろしいですか?この場合、この各種設定の項目は当社の経理に関する諸設定情報ということでしょうか?
  
 (2) 画面に表示されている「Me.新締め日」に既に[各種設定].[現締め日]が設定してある場合、月次締切処理を実行するという意味ですね?
  
3.dteFrom/ dteToの日付の取得に関して
この日付は、締め日の月の1日が開始月、締め日の月の月末が終了月として変数に設定しているのですか?

4.「For...Next」処理の「当別入金額の種目別集計(略)」について
・種目別集計とはどういうことをするのでしょうか?

5.「For...Next」処理の「[得意先台帳]の繰越し等更新(略)」について
 この処理は
 (a)当月の繰越金額 d = 前月の繰越額 + a - b
 (b)得意先台帳の当月期首繰越額を5(a)の値dで更新するでよろしいですか?
 
6. [各種設定].[現締め日]を更新
・現締め日を毎月設定する処理のようですが、普通(自分の)会社の締め日は変わらないので、毎月設定する必要があるのか疑問です。もしかすると、私が間違っているのかもしれませんが、ご回答よろしくお願いします。

補足日時:2014/10/21 16:24
    • good
    • 0

【請求書発行アプリケーション】



売上形態と請求書:

個人顧客:売上伝票+請求書で逐一発行。
法人顧客:相手が合意した締め日で締切って月単位で発行。

請求書発行アプリケーションは、この後者の請求書を作成するものです。別に、その為のテーブルを別途に用意する必要はありません。月次の期首繰越額が判っていれば、それを手掛かりに売上・入金データを参照して計算すれば事足りる話です。

なお、

>おい、そんな面倒な区別はいらんばい。
>うちは、売上=請求たい。

と、社長が言えばそれまでです。

【在庫管理、売掛管理には期首設定が必要】

PCシステムは起ち上げ移行のデータしか持ちません。ですから、期首設定は必ず必要です。在庫期首、売掛期首。やり方は、一覧入力して、それを手掛かりに架空の売上伝票を発生させるなどします。

【テーブルの呼称】

得意先・・・・・・・まあまあ
得意先台帳・・・・・好き
得意先マスター・・・嫌い

【売上伝票とテーブル設計】

普通は、売上データは、主表と従表とで管理します。見積り物件と見積り明細みたいな関係です。これは、会社が使っている売上伝票を見れば一目瞭然ですよね。

主表:売上の発生日付、相手先、担当、適用消費税率等を記録。
従表:行番号順に種別、物件名、売上金額、消費税額等を記録。

これと、見積り物件と見積り明細とは全く違います。まあ、通常は、見積り物件と見積り明細の管理は販売管理の役目ではないと考えます。もちろん、「売上伝票明細.区分=売上を細分化し(1)材料費、(2)手間代を分けよ!」と社長が言えば、それはそれで従うしかないでしょう。

この回答への補足

ご回答ありがとうございます。

期首設定とは、一番はじめの開始残高などの設定のことなのでしょうか?

補足日時:2014/10/21 16:26
    • good
    • 0

 うーん、先ず、市販の販売管理ソフトのマニュアルを2、3種類は入手し、徹底的に研究しましょう。

加えて、会計処理についても、一通り、会社の古参経理と渡り合える知識を入手しましょう。私も、3つぐらいの販売管理ソフトを事細かく分析・研究しましたね。また、妻が税理事務所勤務歴20年だったので詳細に渡って設計の妥当性・一般性を検証しましたよ。

 と、前置きは、これぐらいにして・・・。

【考え方、先売り先入りの原則】

入金を売上物件と紐付けしないのは、その必要性がないからです。それは、販売管理ソフトは「先売り先入りの原則」で処理するからです。

10/10 物件A売上 2000円
10/20 物件B売上 1000円

〇11/10 入金1000円
×11/10 入金1000円(物件B代金)

【ルール、飛び入金禁止規則】

「先売り先入りの原則」が、当然に、飛び入金の発生を許可しません。第一、11/10の入金1000円は別に物件A代金の部分入金とも解釈しても全く問題ありません。また、そうすべきです。それが、

>おい、なぜ、半端な売掛け残が発生しているんだ!

という疑問をレポート読者に起こさせます。結果的に、集金者の使い込みの発覚に繋がったケースがままあります。どうとでも解釈できる、入金を売上物件と紐付けに拘る必要はありません。それぞれの胸先三寸で変わる紐付けを管理するのは、入金伝票記入者、入金伝票入力者、売掛残一覧表の閲覧者のいずれにとっても煩わしいだけ。

【売上、入金テーブルには必ず区分がある】

0:売上
1:返品
2:値引
3:無償
8:運賃
9:調節

売上・入金には必ず種別(区分)があります。返品もあれば値引きもあります。例外的に無償なんてのも発生することでしょう。

>あちゃー、先々月に1000円入力ミスしていたよ。
>しゃーないなー。種別=調節で訂正伝票を起こしておいて。

と、区分=調節が活躍することもあります。

【どこまで入力ミスの訂正を許すのか?】

私は、前々月締切処理の再実行を許していました。まあ、これはサービス。でも、前月締切処理の再実行機能の提供は義務かと思いますよ。

とりあえず・・・。
    • good
    • 0
この回答へのお礼

丁寧なご回答ありがとうございます。

早速、市販の販売管理ソフトのマニュアルを幾つかダウンロードしました。あと、取りあえずですが、会計システム編のデータベース設計の本を読んでいます。

入金を売上物件と紐付けしない点に関するご説明、ありがとうございました。どの売上に対する入金かをいちいち考えていると、めんどうなので、単純に入金とその区分のレコードを記録していくようなテーブル設計をしたいと思います。

売上と入金の区分については、入金の方がわかりませんので、自分でも調べてみようと思っています。

ありがとうございました。

お礼日時:2014/10/21 15:43

補足:得意先テーブルの工夫は必要ですよ。



<例>

ID:1
名前:○○
前月期首請求額残:100
前月請求額:0
前月入金額:0
前月返金額:0
前月調節額:-50
当月期首請求額残:50
当月請求額:0
当月入金額:0
当月返金額:0
当月調節額:0

この回答への補足

ご回答ありがとうございます。

以下の回答について、質問をさせて下さい。

> 補足:得意先テーブルの工夫は必要ですよ。a

すみません。得意先テーブルの工夫というと具体的にどういう事でしょうか?


>
> <例>
>
> ID:1
> 名前:○○
> 前月期首請求額残:100
> 前月請求額:0
> 前月入金額:0
> 前月返金額:0
> 前月調節額:-50
> 当月期首請求額残:50
> 当月請求額:0
> 当月入金額:0
> 当月返金額:0
> 当月調節額:0

つまり、このようなカラムをテーブルに作れば、少なくとも請求と入金の日々の記録を付ける事は可能ということでしょうか?

■請求・入金明細テーブル
・請求入金ID
・日付
・請求先
・当月期首請求額残
・当月請求額
・当月入金額
・当月返金額
・当月調節額
・備考(対象見積IDなどを記載)

宜しくお願いします。

私になりに考えると、請求先から複数の依頼案件にまたがって入金されたりすることもあるので、それをシステム設計で自動的に、顧客がどの依頼案件の支払なのかを作りこむことは出来ないのでしょうか?無理ですよね・・・すると仰るとおり。

補足日時:2014/10/17 20:03
    • good
    • 0

× 10/2|__|__50|__50|


〇 10/2|__|__50|_150|
    • good
    • 0

>見積明細テーブルの各請求先毎の支払状況を見る上では、


>その下の入金明細テーブルでは不十分です。
>これをうまく改善するテーブル設計の方法を教えてくだい。

それは、ありません。

ヘッダー部:

顧客名__:○○様
前月請求残:100円
今月入金額:_50円
今月請求額:100円
今月請求残:150円


請求・入金明細:

日付|請求|入金|残高|
繰越|__|__|_100|
10/1|_100|__|_200|
10/2|__|__50|__50|

これが、いわゆる「顧客別請求・入金履歴(月次)」の参照フォームの雛形。これは、テーブルデータを表示しても実現できない代物。データの加工結果でしかありません。「それは、ありません」という理由です。
    • good
    • 0

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

関連するカテゴリからQ&Aを探す