• 締切済み

ACCESS で サブフォーム参照してバカ除け

宜しくお願いします。 複式簿記の伝票入力でバカよけをしたいのですが 少し仕組みを説明します。 出張してこの費用を請求するとき次のように複数の費用を項目になります。 (1)伝票No.、日付、目的等 (2)--借方---- ----(3)貸方--- ・交通費 1,000 現金請求 10000 ・宿泊費 8,000 ・日当_ 1,000 借方合計 10000 貸方合計 10000 上記のように[借方合計]と[貸方合計]が一致します。 (1)のフォームのサブフォームが(2)、(3)です そこでサブフォームの合計が一致しなければフォーム(1)のレコードの移動、削除が出来ないようにしたいのですが どのようにしますか?

みんなの回答

noname#79209
noname#79209
回答No.2

#1です。 私なら、入力用のワークテーブルを用意して、 [貸方・借方]  [科目]    [金額] 貸方      交通費    1,000 貸方      宿泊費    8,000  貸方      日当_    1,000 借方      現金請求   10,000 で、計算させると思います。 また私は、フォームとテーブルと関連づけしないようにしています。

shinkami
質問者

お礼

フォームとテーブルと関連づけのままで、何とか解決しました。 データ入力後のレスポンスが少し遅いような気がしますが 問題になるようでしたら改めて検討します。

shinkami
質問者

補足

度々有難うございます。 明細行は借方、貸方とも複数行を考慮しています。 例えば、今回の例で8000円を仮払しての出張だった場合不足分の2000の請求が発生し貸方は 仮払金 8000 現金… 2000 (現金請求 例では現金と表現すべきでした)の2行になります。 ワークテーブルとデータテーブルのやりとりはSQLとなると思いますが [Insert]、[Delete] のセットで使用することになりますか?

すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.1

データベースの構造が不明なので的確な回答は出来ませんが... 借方と貸方のテーブルそれぞれで、伝票番号で抽出したレコードの金額フィールドの合計を算出して比較すれば良いのでは? 例: strCriteria = "伝票番号='" & Me.伝票番号 & "'" If DSum("金額","借方",strCriteria) <> DSum("金額,"貸方",strCriteria) Then など...

shinkami
質問者

補足

ご指導有難うございます。 「仕訳登録」フォームのサブフォームが「借方サブ」、「貸方サブ」とし それぞれの明細金額が[借方]、[貸方] 合計金額が [借方合計]、「貸方合計] 合計金額はそれぞれのデータソースに=Sum([借方]) =Sum([貸方])です。 貸方の明細行の[貸方] にカーソルが入る直前に [貸方]=[forms!借方サブ!借方合計]-[貸方合計] で「実行時エラー'2450' マクロ式またはVisual Basicコードで参照されている'借方サブフォーム'が見つかりません。」となります。 サブフォーム間のデータの参照は出来ないのでしょうか

すると、全ての回答が全文表示されます。

関連するQ&A