舊式 Access 案件管理系統:業務流程、資料模型與重建筆記

| Work Notes | 18 Reads

Access/VBA 業務逆向工程

從一張 審査請求書 進來,到 補正答弁争点整理調査合議法規審査裁決発送送達:這套 VBA 到底在替誰管什麼?

分析對象:処理状況等管理システム.accdb(主畫面標示「2025版」)|分析基準日:2026-09-02

用語原則:中文只負責解釋。凡是來自 Access 的欄位名、按鈕名、帳票名、状態值,以及法定制度用語,本文一律保留日文原文,不另造中文譯名。

先講清楚本文的邊界

本文是對資料庫結構、クエリ、フォーム、レポート、マクロ與 VBA 的唯讀逆向分析,再用国税不服審判所、国税庁及 e-Gov 的公開資料交叉驗證。程式怎麼做,不等於法律規定就一定怎麼寫;內部欄位也不等於正式法律用語。本文不構成法律意見。資料庫內的請求人、住所等、電話及個案內容均未引用。

閱讀標記:先把「確定」和「推定」分開

【官方】 可在国税不服審判所、国税庁或 e-Gov 的現行公開資料中核對。
【程式】 直接來自本資料庫的欄位說明、查詢條件、表單事件或 VBA 實作。
【推定】 依欄位名稱、前後流程與報表用途推斷;若要重建系統,必須找業務人員或內部《提要》確認。

一分鐘結論:這套系統其實是什麼?

它不是「自動判案系統」,而是「案件台帳+進度控制表+統計報表工廠」。

它把一件審査請求拆成很多可管理的數字與日期:誰提出、針對什麼原処分、由哪個支部與合議体處理、答弁書何時要求、証拠何時収受、争点何時確認、何時調査與合議、法規審査走到哪裡、何時裁決與発送,以及這件在統計上到底算幾個「実件」和幾個「延件」。

  1. 一件現實中的審査請求,不一定只對應一筆資料。一份請求書可能包含多個税目、年分或原処分,所以系統會生成一組互相關聯的受付番号。
  2. 同一個受付番号,又被橫向切成三張一對一テーブル。情報日付(情報)日付(進行管理)・メモ各放一張。
  3. 核心不是「狀態」而是大量里程碑日期。系統用「答求、答受、初合、議決、法了、裁決、発送……」判斷進度與產生報表。
  4. 大量報表是它真正的產出。它按支部、税目、事件種、処理態様、処理期間、未済階段、長期化理由等輸出管理資料。
  5. 很多規則只是表單層警告,不是不可突破的資料約束。日期矛盾可以按「是」繼續保存;部分原本設計的檢查與彙總更新已被註解停用。

本文目錄

  1. 官方業務流程
  2. 処理態様怎麼看
  3. 実件、延件與関連受付番号
  4. 三張核心表
  5. 三個入力頁籤
  6. 縮寫日期(日文欄位逐項說明)
  7. 新規、更新、複写、削除
  8. 必須チェック與日付チェック
  9. 文書、証拠與手続上の権利
  10. 內部分類代碼
  11. 報表、期間與一年內比例
  12. VBA 架構
  13. 已確認的風險與疑似缺陷
  14. 重建時的領域模型
  15. 一定要問業務的問題
  16. 官方資料來源

我到底拆了多少東西?

【程式】資料庫以停用巨集與啟動程式碼的方式唯讀開啟,沒有執行 AutoExec,也沒有修改原檔。盤點結果如下:

資料表 查詢 表單 報表 巨集 VBA 模組
82 727 6 694 3 6

694 張報表不代表 694 套不同業務;其中大量是同一統計按支部、税目、事件種、実件/延件、明細/合計、橫式/縱式等變體展開。

先不看程式:一件国税的「審査請求」通常怎麼走?

先把角色記住,後面所有欄位就不會再像天書:

角色 白話意思 在系統中留下什麼
審査請求人 覺得稅務處分不對,來請求取消或變更的人。 請求人共同代表者住所等請求人電話、代理人、反論書、意見書、口頭意見陳述、閲覧/謄写等。
原処分庁 做出原來稅務處分的税務署長、国税局長等。 答弁書、意見書、回答書、資料提出、閲覧/謄写等。
国税不服審判所 站在雙方之間,以第三者立場調査、審理並作成裁決的機關。 形式審査、合議体、争点、調査、審理計画、議決、法規審査、裁決與送達。

【官方】国税不服審判所公開的流程可以壓成下面十步。官方完整說明見「審理と裁決」

  1. 審査請求書の提出:原則上可直接向国税不服審判所提出,也可能在再調査の請求後提出。一般期限是知道處分之翌日起 3 個月內;若經再調査決定,通常為送達翌日起 1 個月內。精確例外須以現行法與官方說明為準。
  2. 収受與形式審査:先看審査請求書是否具備必要記載、是否在期限內、代理権證明文件是否齊全;能補的就要求「補正」。明顯不適法且不能補正的,可不進實體審理而「却下」。
  3. 答弁書の要求:原処分庁說明它要維持什麼處分、事實與法律理由是什麼;答弁書の写し送給審査請求人。
  4. 合議体の指定:指定 1 名担当審判官及至少 2 名参加審判官。担当審判官成為雙方提交主張、証拠、程序申請的主要窗口。
  5. 争点整理與審理計画:把雙方真正爭什麼、已交什麼、還缺什麼、下一步何時做整理清楚,必要時交付「審理の状況・予定表」與「争点の確認表」。
  6. 主張・証拠の提出:審査請求人可交反論書與証拠;原処分庁及参加人可交意見書;審判所也可要求回答、文件或補充說明。
  7. 手続上の権利:審査請求人或参加人可申請口頭意見陳述;雙方可在法定範圍內請求閲覧或写しの交付。口頭意見陳述時,審査請求人可經担当審判官許可向原処分庁発問。
  8. 職権調査:担当審判官等可質問、検査、要求帳簿書類、留置物件或委託鑑定,用來釐清事實。
  9. 審理終結・合議・議決:調査完畢後終結審理;合議体以過半數形成「議決」。議決是合議体的結論,裁決則是審判所長依議決作成的正式行政判斷,兩者不是同一個日期。
  10. 裁決・発送・訴訟:裁決書謄本送達審査請求人與原処分庁。審査請求人仍不服時可依法提起訴訟;原処分庁受裁決拘束,不能因不服而起訴。
最容易混淆的一句:「審査請求人贏了一部分」叫一部取消し;「審査請求人在實體理由上沒被接受」叫棄却;「這個請求程序上不合法」叫却下;「審査請求人自行取下」叫取下げ。這四個不能混寫。

処理態様:代碼 0~6 到底在說什麼?

代碼 系統名稱 白話判斷
0 未済 尚未結案。
1 全部取消し 請求人要求取消的部分全部被接受。
2 一部取消し 只有一部分主張被接受。
3 棄却 程序可以審,但實體審理後不採納請求人的主張。
4 却下 因逾期、沒有可爭執的處分、無資格、未依補正要求處理等程序問題,不進入或不能維持實體審理。
5 取下げ 審査請求人自行取下。
6 変更他 原処分被變更,或被系統歸到「其他」的內部分類。

【官方】裁決不得把審査請求人處境改得比原処分更不利;裁決對有關行政機關有拘束力。完整定義可核對国税不服審判所的裁決内容與拘束力說明

【程式】若処理態様為全部取消し或一部取消し,系統會要求選「取消事由」;若為却下或取下げ,會要求「却下事由」或「取下事由」。取消案件且税目代碼小於 90 時,還要求入力本税與加算税的取消金額。這些條件是本程式的統計口徑,不應倒推成法律本身的分類。

全系統最難的一關:実件、延件、総延、総総到底是什麼?

先用一句人話:同一個人遞交的一份請求書,可能同時挑戰好幾個税目、年分或原処分;管理上想把它看成一組,但統計上又必須分別計件。所以系統同時保存三層數量。

層級 對應欄位 白話
請求書/整組 請求書関連受付番号総総実総総延 一份請求書或同一請求人下的一組事件。親レコード的 請求書=1,而且其関連受付番号必須等於自己的受付番号。
実件 実=1総延 一個管理上算作「一件」的實質事件。其代表行放 実=1,並以 総延記錄這個実件下面一共有幾個延件。
延件/最小計數行 延=1 每一個要獨立計數的処分/事案資料行。自動複写出的関連レコード會設 実=0総延=0延=1

用一個完全虛構的例子

假設甲公司用同一份請求,爭執「法人税兩個年分」和「消費税一個原処分」。管理上是 2 個実件,統計最小單位是 3 個延件:

受付番号(虛構) 関連受付番号 請求書 総延 意思
1234-56-0001 1234-56-0001 1 1 2 1 整組的親レコード,也是法人税実件的第一個延件;親レコード另存 総総実=2総総延=3
1234-56-0002 1234-56-0001 0 0 0 1 法人税実件的第二個延件,由程式複写生成。
1234-57-0001 1234-56-0001 0 1 1 1 另一個消費税実件,仍掛在同一份請求書的親レコード。

上表是依欄位說明與複写演算法製作的教學例,並非資料庫中的真實案件。

【官方】国税庁歷史統計資料說明,件數原則上按處分或事案分別計 1 件;本税與特定加算税同時爭執時,可能合併按 1 件計。這就是為什麼畫面上人的直覺「我只申訴一次」與統計數量可以不同。可參考国税庁統計編的計件註記

開發時不要做錯:不是布林版的「真/假」,而是統計權重;総延是実件小計,総総実/総総延是整組總計。它們雖常見 0 或 1,但資料中也存在 Null、0、1、-1 等歷史值,不能直接改成嚴格 Boolean 而不做資料清洗。

同一受付番号,為什麼要住在三張表?

【程式】三張核心表目前都各有 2,107 筆,以 受付番号一對一連結。関連設定同時啟用唯一性、更新串聯與削除串聯。把它想成一張太寬的案件卡被剪成三頁:

資料表 欄位數 負責的業務
事績処理テーブル(情報) 150 人、組織、税目、原処分、分類、件數、処理結果、取消事由、却下事由、取下事由、取消金額、代理與程序申請、担当者、公表判定與重要事件等。
事績処理テーブル(日付(情報)) 117 面談、資料要求、答弁/反論/意見/回答、争点の確認表、審理の状況・予定表、本部照会、閲覧、口頭意見陳述、調査計画與実施等活動日期。
事績処理テーブル(日付(進行管理)・メモ) 142 從請求到送達的主時間軸、当初計画/修正計画、進捗状況、遅延理由、今後の処理方針、事案概要,以及每個日期是否禁止從親レコード同步的 F 旗標。
畫面上的一件資料
受付番号
↓ 同一鍵值
情報 150 欄 日付(情報)117 欄 日付(進行管理)・メモ 142 欄

削除為什麼危險?因為情報表是親表:削除其中一個受付番号,另外兩表同號資料會被連鎖削除;若削除的是関連グループ的親レコード,削除表單還可能先削除整組情報資料。

還有一條「暫定版」支線:事績処理3有 51 個欄位,搭配 暫定版補完入力表單及報告資料建立查詢,追蹤国税通則法第 96/97 條相關資料提出節點;但本快照為 0 筆,名稱也明示「暫定版」。因此它不是目前 2,107 筆核心資料的第四頁,應視為尚待確認是否啟用的試行/補充模型。

主輸入畫面的三個頁籤,各自在問什麼?

【程式】主フォーム 事績処理入力有三頁,名稱正好對應三張核心表。它不是要操作員一次填完 409 個欄位,而是在案件生命週期中不斷補日付、結果與メモ。

第一頁:情報——「這是誰的什麼案件?」

  • 識別與聯絡:支部、受付番号、関連受付番号、請求人、共同、代表者、郵便番号、住所等、請求人電話、代理人、補佐人。
  • 案件性質:税目、事件種、事件処理区分(初期/変更/再変更)、設定日、変更理由、争点番号、海外取引、争点(海外)、評価。
  • 原処分來源:局部課、本支所、原処分庁、受理態様、収受態様、審理態様、青白区分、年分、原処分。
  • 計件與関連:請求書、実、総延、延、総総実、総総延、継続管理。
  • 特殊管理:情報共有事件、本部報告日、調整、審理留保、再開、重要事件、公表判定。
  • 処理結果:裁決番号、処理態様、取消事由/却下事由/取下事由、取消税額(本税/加算税)。
  • 手続上の権利:口頭意見陳述、閲覧/謄写、徴収猶予、差押解除、発問権、出席、審理手続意見聴取。
  • 担当・審査体制:部、部門、担当審判官、参加審判官 1/2、分担者、法審部門、法規審査、形式審査、事件主任。
  • 本人確認:法人番号確認、個人番号確認、個人身元確認。官方也說明,含 My Number 的請求書須附相應確認資料。
  • 謄写/写しの交付:最多五輪,逐輪保存謄写対象特定書収受日、謄写請求書収受日、頁数、費用、納付、交付與除外日数。

第二頁:日付(情報)——「雙方與審判所做過哪些程序活動?」

  • 面談種類、予定日、実施日、出席者,以及書類/物件的預り與返却。
  • 三輪要求書類:要求什麼、何時要求、期限、何時收到。
  • 「審理の状況・予定表」最多三輪,分別記錄交付給請求人與原処分庁的日期。
  • 「争点の確認表」最多三輪,分別追蹤雙方的交付日期。
  • 本部照会與回答、一般文書的要求/収受/送付。
  • 反論書、請求人意見書(多輪)、原処分庁意見書(多輪)、雙方回答書:各有要請日、提出期限、収受日。
  • 参加人意見、釈明陳述録取書、面談、口頭意見陳述、閲覧/写しの交付、審理手続意見聴取。
  • 最多五輪調査的計画日、実施日與内容;另有マスキング、デジタルカメラ等實務欄位。

第三頁:日付(進行管理)・メモ——「現在走到哪裡,接下來怎麼辦?」

  • 完整主時間軸:請求、収受、補求、補完、答求、答受、事件回付、配付、指定、着手、初合、審理終結、議決、法回、法了、返戻、再開、決裁、裁決、発送、送達。
  • 七個核心節點的当初計画修正計画:答弁書要求、答弁書収受、当初合議、議決、法審了、裁決、発送。
  • 文字備忘:進捗状況、第 96 条資料未提出理由、特記事項、遅延理由、今後の処理方針、各種備考、事案概要。
  • 大量以 F結尾的旗標,用來決定親レコード更新時,此欄是否要同步到関連レコード。

「答求、初合、法了」是什麼?日文欄位逐項說明

下面先給能從官方流程或程式前後文確定的白話意思;帶「推定」者是內部縮寫,程式沒有正式字典,重建前必須請業務確認。

階段 欄位 白話解釋
提出・収受 請求 審査請求日。
収受 審判所的収受日,通常是処理期間的起點。
収調 【程式】調整後的収受日;報表一律優先用它,空白才用収受。它會改變経過期間計算。
補求 要求補正/補充欠缺。
補完 補正完成。
答弁 答求 向原処分庁要求答弁書。
答限 答弁書提出期限。
答受 答弁書収受日。
答弁書送付 把答弁書の写し送付給審査請求人。
內部分案與開始 事件回付 事件在內部回付/移交。
形回 【推定】形式審査相關的回付節點。
予担回 【推定】予定担当/予備配付相關的回付節點。
配付 配付至担当部門或担当者。
指定 担当審判官與参加審判官的正式指定。
着手 担当者開始實質處理。
調査・合議・終結 初合 初回合議/当初合議。
中間合議 調査途中由合議体檢視争点與方向。
調査終了 調査活動完成。
議決予定 議決予定日。
終合 【推定】最終合議節點。
審理終結/終結通知 審理手続終結及通知。官方說明:終結後,原則上不能再做反論書/証拠提出、口頭意見陳述申立て、閲覧或写しの交付請求等程序行為。
議決 合議体以過半數形成的結論,是裁決的基礎。
文合 【推定】裁決文書/文案的合議或確認節點。
法審・返戻・再開 一次担当/二次担当 法規審査中的一次担当、二次担当節點。
法審チェック 法規審査的チェック。
三次受理 第三階段受理/確認節點。
法回 【推定】送交或回付法規審査。
法了予定 預計法規審査完成日。
返戻 法規審査後返戻,要求修正。
審理再開/再開通知 先前終結的審理重新打開並通知。
再終合/再終結/再終結通知 重新合議、再次終結及再次通知。
再議/再法 再次議決/再次送法規審査。
法了 【程式前後文】法規審査完成。
浄書・決裁・対外送付 浄書回付/浄書終了 正式文書進入浄書流程的回付與完成。
次席回付/次席決裁 送次席審核與完成決裁。
所長回付/所長決裁 送所長審核與完成決裁。
裁決 審判所長作成正式裁決。
発送 裁決書謄本等的発送。若干未済/処理期間查詢以此而非裁決日當作操作上的完成點。
送達日(請求人/原処分庁) 雙方實際被送達的日期。
訴訟提起日/判決日 裁決後進入司法程序時的追蹤日期。

操作員怎麼用:検索、新規、更新、複写、削除

1.先検索,不允許「什麼都不填」

検索表單可按支部、受付番号、請求人、税目、請求/収受/裁決日期區間、関連受付番号篩選。三組日期都檢查「自 ≤ 至」。受付番号與請求人使用 Access 的 Like,程式本身沒有自動在前後加萬用字元,所以一般輸入等同精確比對;使用者自己輸入萬用字元時才可能模糊検索。

結果列顯示支部、受付番号、請求人、税目、請求日、収受日、裁決日、実、総総延與関連受付番号。從這裡進入更新、新規、関連複写或削除。

2.新規:先建三張表,再依総延製造延件

  1. 使用者確認新規登録。
  2. 執行必須チェック、条件付必須チェック與日付チェック。
  3. 檢查受付番号未重複。
  4. 若填関連受付番号,確認親レコード存在、請求書=1,而且請求人相同。
  5. 依序向三張核心表插入同一受付番号。
  6. 総延 > 1,自動再建立 総延-1個延件行。新號碼固定用「原受付番号前 8 字元+四位流水號」。

複写出的延件會承接支部、請求人、税目、事件分類、担当與多數共通日期,但個別原処分專屬欄位不全都複写;它們設為 実=0、総延=0、延=1

3.更新:先改本レコード,再把共通欄位同步到整組

  1. 確認、必須チェック與日付チェック。
  2. 若受付番号有改,檢查新號碼唯一性;資料庫関連會串聯更新兩張子表的鍵。
  3. 依序更新三張核心表。
  4. 若目前是親レコード,呼叫 UpdKanren1,把姓名、分類、担当、共通程序日期、計画與進捗等同步至同一関連受付番号的関連レコード。
  5. 若重新指定親レコード,程式會把舊親レコード的 請求書改為 0。

4.「複写」不是另存新案件,而是補齊缺少的延件

只有 総延 ≥ 2且存在関連受付番号時才能用。進入複写模式後,大部分欄位被鎖住;程式先數同一受付番号前 8 字元、且同一関連受付番号的現有行,再只補造不足的流水號。因此按鈕名稱很容易誤導:它的業務目的是依総延補足計數行,不是讓使用者自由複製一件案件。

5.削除:看你削除的是親レコード還是関連レコード

  • 沒有関連受付番号:只削除目前情報行,兩張日付表由関連設定連鎖削除。
  • 有関連受付番号且 請求書=1:削除所有同一関連受付番号的情報行,也就帶走每行的兩張日期資料。
  • 関連レコード:只削除目前受付番号。

注意:削除後重新計算 総総実/総総延的呼叫已被註解,所以剩餘親レコード的總數可能變舊。

関連同步的 F 旗標:為什麼每個日期後面又有一個 F?

【程式】資料表說明寫得很明確:0 或 Null=同步更新-1=不更新。例如 裁決F法了F発送F

親レコード的 F 関連レコード的 F 結果
0/Null 0/Null 親レコード值覆蓋到関連レコード。
-1 任何值 本欄不向外同步。
0/Null -1 保留該関連レコード自己的值。

這是在「整組通常共用日期,但少數延件例外」之間做折衷。新系統若要重建,最好把它表達為明確的「繼承/覆寫」模型,而不是讓每個日期旁都長一個難懂的 Boolean。

哪些是真必填?哪些只是警告?

必須チェック(無条件)

【程式】主流程會要求:支部、受付番号、請求人、住所等、税目、事件種、局部課、本支所、原処分庁、受理態様、収受態様、青白区分、年分、原処分、実、総延、延、請求日、収受日、処理態様,以及法人番号/個人番号/個人身元確認三個確認欄位。注意:是否真的該三者同時要求,是程式現況,不代表所有案件法律上都必然同時適用。

条件付必須チェック

條件 必須補什麼
代理代碼 > 0 代理人姓名。
請求書=1 総総実、総総延;若有関連受付番号,必須等於自己的受付番号。
非親レコード且有関連受付番号 不可指向自己;目標必須存在、為親レコード且請求人相同。
海外取引=海外取引有り 争点(海外)。
審理留保中/審理再開 留保開始日/再開日。
全部/一部取消 取消事由;部分税目另要本税、加算税取消金額。
却下/取下げ 却下事由/取下事由。
総総延 > 9 継続管理。欄位說明指示一名請求人延件達 10 件以上時輸入「2」。
併合/分離類審理態様 併合分離年月日。
事件処理区分發生変更 設定日與変更理由。
審理の状況・予定表輪次有值 對應輪次日期。
担当者紹介「無」 紹介できない理由。
審理手続意見聴取 > 0 実施日。
1年以内判定除外=Yes 除外期間(自)。「至」的必須チェック在程式中已被註解。

日付チェック不是硬擋

程式檢查大量先後順序,例如:

  • 収受/収調 → 補求 → 補完;答求 → 答限 → 答受。
  • 初合 → 終合 → 議決;法回 → 返戻/法了 → 裁決 → 発送。
  • 浄書回付 → 浄書終了;次席回付 → 次席決裁;所長回付 → 所長決裁。
  • 面談通知 → 面談実施;書類提出要求 → 提出;閲覧請求 → 実施;口頭意見陳述の申立て → 実施。
  • 当初計画及修正計画的七個節點順序、三輪予定表/争点の確認表順序、各種要請日 ≤ 提出期限。

關鍵:發現矛盾後,DateCheck把全部訊息串起來,最後問「処理を続行しますか?」;按「是」就回傳成功並繼續保存。因此這是可覆寫的警告。若業務需要例外,理想設計應要求記錄覆寫理由與操作者,而不是只有 Yes/No。

已被註解、目前不生效的規則

  • 主要争点番号的部分必填要求。
  • 総延 > 1時関連受付番号必填。
  • 若干要求書類期限、争点/予定表交付日期的必填。
  • 除外期間(至)必填。
  • 多個「後日期存在時,前日期必須存在」的檢查;有些只剩「兩者都有值時比較大小」。

為什麼有這麼多「表、書、意見、閲覧、謄写」?

東西 業務作用 系統怎麼追
答弁書 原処分庁對請求理由作正式回應。 要求日、提出期限、収受日、請求人送付日。
反論書/意見書/回答書 雙方針對對方主張與新資料繼續攻防;参加人也可提出意見。 按角色與輪次保存要請、期限、收受。
審理の状況・予定表 把已提出書類、現在の争点、調査/審理状況與今後の予定透明化。 最多三輪,分別記錄交付雙方日期。
争点の確認表 把原処分、争点與雙方主張整理成同一張地圖,防止雞同鴨講。 最多三輪,分別記錄交付雙方日期;是否交付依個案。
口頭意見陳述 讓審査請求人或参加人口頭說明;依法與官方說明,審査請求人可經許可向原処分庁発問。 原文状態為「該当なし」「申立てがあったもの」「申立てがあり実施したもの」「申立てを取り下げたもの」「申立てを認めなかったもの」「実施しなかったもの」,另保存申立日、実施日與出席資訊。
閲覧/写しの交付/謄写 雙方在法定範圍內查看或取得對方及職権調査資料;交付可能收取實費,特殊情形可減免。 按請求人、原処分庁、参加人及多輪請求,追状態、日付、頁数、費用、納付、交付與除外日数。
第 96/97 条資料 第 96 条側重審理関係人提出証拠書類等;第 97 条涉及審理所需的質問、検査、物件提出要求等職権調査。 暫定表按申告書、通知書、帳簿写し、聴取書、金融機関/取引先與其他資料,追各階段提出日及終了旗標;目前 0 筆。

【官方】這些程序不是 VBA 作者憑空想像。可核對国税不服審判所審理手続說明官方提出書類一覧現行国税通則法

內部分類代碼:它們是報表維度,不一定是法律分類

事件処理区分:A、B、C、D、E、A'

【程式】代碼表只保存這六個標籤,沒有說明 A 到 E 各代表何種難度或処理方法。帳票會優先採「再変更区分」,其次「変更区分」,最後才是初期区分;並用它產生硬編碼モデル日程。任何把 A 解釋成簡易、D 解釋成複雜的說法都只是猜測,本文不這樣做。

事件種

推計課税等、行政訴訟関連、査察関連、その他訴訟関連、調査課等、特調等、税関長等、その他一般。它決定統計分類與可能的処理特性。

審理区分(現在卡在哪個工作階段)

管理手持、議決未済、返戻未済、報告未済、法審未済、決裁未済、留保事件。這是管理者看「卡在哪個工作籃」的欄位,不是処理態様。

案件怎麼進來

  • 受理態様:持参、処分庁経由、郵送等、電子申請、その他——偏向實際收件管道。
  • 収受態様:始審、3か月経過、みなす89条、みなす90条、再調査一取、再調査棄却、再調査却下、再調査変更、再調査その他——偏向前置程序與法定路徑。縮寫「一取」的正式全稱仍需向內部確認。
  • 審理態様:該当なし、併合、分離、併せ、併合併せ、分離併せ。
  • 調整:該当なし、削番、税目変更、事件種変更、本支所移送、他支部移送。許多正式統計查詢會排除 調整≠0的資料。

海外取引、重要事件與公表判定

  • 争点(海外):外国税額控除、非居住者・外国法人の納税義務、非居住者・外国法人の源泉課税、移転価格、国外関連者寄附金、過少資本、外国子会社合算税制、その他、消費課税、資産課税。
  • 重要事件:重要先例見込事件、個別管理重要事件、本部協議事件、情報共有事件、本部照会事件、相互審査事件;代碼文字引用內部《提要》章節。
  • 公表判定:未判定、公表適、公表否(「審査請求人等が容易に特定されるおそれがあるもの」「審査請求人等の営業上の秘密がもれるおそれがあるもの」「その他」)、公表留保。這是裁決公開前的隱私與機密判斷。

取消事由・却下事由・取下事由・長期化理由

  • 取消事由:「法令、通達等の解釈、適用誤り」「事実関係の認定誤り」「新たな資料が提出又は発見」「重加算税の賦課決定要件の認定誤り」「計算誤り」「その他」;推計課税事件另分「推計方法の変更」「推計の基礎項目の変動」「同業者率の異動」「実額採用(収支計算)」等。
  • 却下事由:「期限徒過」「原処分不存在」「不利益処分でない」「既に判決又は裁決により確定」「法定の請求事項に該当しない」「再調査の請求が不適法」「再調査の請求に係る決定なし」「請求の資格がない」「補正要求に応じない」「その他」。代碼表另混有「原処分取消し」類歷史項目,不能直接當成純粹的現行却下事由字典。
  • 取下事由:大類包含「適法事件/原処分取消」「請求人が原処分を容認」「主張を放棄」「訴訟等の終結等により裁決を求める利益なし」,以及各種「不適法事件」原因。
  • 長期化理由:「請求人側の理由/調査非協力」「原処分庁側の事由」「関係人等の事由」「事実関係の複雑」「法令の解釈・適用の困難」「事件の急増」「査察・訴訟関連」「担当審判官の病気等」「その他」「審理留保事件」「議決済事件」。

報表才是終點:管理層到底想看什麼?

【程式】主選單把報表大致分成六組:

  1. 発生・処理実績:按税目、事件種、支部/本所、原処分庁、処理態様、取消税額、取消事由/却下事由/取下事由、月別等統計,另有受付簿。
  2. 平均処理期間:每案、全体、実件/延件、支部、税目、事件種、部門,以及圖表和期間異常チェック。
  3. 未済管理:各支部的未済件数、処理段階、逐案経過月数、全国/支部平均、審理留保事件、長期化理由及明細。
  4. モデル日程:把 A~D、A' 的內部モデル日程與実績/計画日並排。
  5. 業務計画・実績報告:計画指標、処理実績、進捗表。
  6. 入力品質:入力状況確認、未済状況確認、汎用入力チェック、期間與日付矛盾清單。

報表的「今天」不是固定今天

函式 規則 用途
sDate() 主選單沒開時=當月 1 日;有開時=使用者輸入的基準日(自)。 報表起日。
eDate() 主選單沒開時=今天;有開時=基準日(至)。 報表截點;大量「截至某日未済」判斷都依它。
ksDate() 以 4 月 1 日為會計年度起點。 年度實績與跨年度比較。
jsDate() 以 7 月 1 日為另一統計年度起點。 部分進行管理/業務計画口徑。

所以不能簡單說「本系統年度都是 4 月」或「都是 7 月」:兩套起點都存在,由不同報表使用。

四個會改變數字的隱藏口徑

  1. 有効な収受日:IIf(収調 Is Null, 収受, 収調)。只要填了収調,経過期間就改從収調算。
  2. 未済的終點不統一:有的帳票按裁決日統計処理,有的未済クエリ要到 発送完成才排除。因此「已裁決但尚未発送」可能法律判斷已完成,操作帳票仍在待辦。
  3. 調整資料常被排除:調整=0才進正式統計,削番、税目變更、移送等通常被濾掉。
  4. 代表行與計件權重:有的清單只取 請求書=1,有的統計加總 ;同一批資料若選錯口徑,件數會完全不同。

経過期間の区分

系統至少存在兩套分桶:

  • 細版:6 個月內、9 個月內、1 年內、1 年 6 個月內、2 年內、2 年 6 個月內、3 年內、3 年超。
  • 彙總版:6 個月內、1 年內、2 年內、3 年內、3 年超。

另有逐階段耗時:収受→答求、答求→答受、答受→指定、指定→着手、着手→議決、議決→法審了、法審了→裁決等。這使管理者不只知道「慢」,還能知道慢在答弁、調査、合議、法審或決裁。

A~D、A' 的硬編碼模型日程

【程式】進行管理一覧把一年分成每月上/中/下旬,用 ①~⑦標記モデル、計画與実績:

①答弁書要求 ②答弁書収受 ③当初合議 ④議決 ⑤法規審査了 ⑥裁決 ⑦謄本発送

區分 ④ 議決 ⑤ 法審了 ⑥ 裁決 ⑦ 発送
A +26 日 +34 +37 +40
B +9 +37 +67 +140 +170 +177 +180
C +9 +37 +67 +230 +270 +277 +280
D +9 +37 +67 +270 +317 +327 +330
A' +70 +90 +97 +100
E 未設定模型;模型議決日顯示「-」

千萬別把上表當法定期限。這些只是 VBA 中從「有効な収受日」加固定天數的內部管理モデル。官方公開的 1 年標準審理期間與這套 A~E 日程是不同層次的概念。

1年以内処理:官方口徑和本程式的落差

【官方】国税不服審判所把「審査請求到達後至裁決通常所需的標準審理期間」設為 1 年。最新的令和 7 年度(2025-04-01~2026-03-31)公開資料顯示:発生 3,159 件、処理 3,128 件,其中全部認容/一部認容 226 件、認容割合 7.2%,1年以内処理割合 98.8%。官方註明,計算該比例會排除相互協議、公訴相關等留保期間,以及災害或審査請求人原因造成的中斷期間。見令和 7 年度審査請求概要

【程式】資料庫有 1年以内判定除外除外期間(自)除外期間(至)、留保與再開欄位;但全庫検索只發現這些欄位被入力、驗證及輸出到參考清單,沒有發現自動把除外日数扣掉後重新判定1年以内的公式。而且只設一組除外起訖,無法自然表示多次中斷。這表示最終1年以内統計可能另靠人工計表、外部作業或尚未納入本檔的処理。

從開發者角度看:VBA 架構怎麼串起來?

メインスイッチボード
期間、功能、報表入口
検索/事績処理入力/削除
使用者互動與表單驗證
FormFunc+DBFunc
必須チェック、日付チェック、CRUD、関連複写、計件
三張核心表+代碼表
727 查詢+ReportFunc+694 報表
統計、未済、平均期間、進行管理、輸入檢查
模組 主要責任
DBFunc 載入一件資料、三表新規/更新、受付番号重複チェック、前後レコード、関連チェック、延件複写、親レコード同步、総総集計。
FormFunc 必須チェック、条件付必須チェック、日付順序警告、数値変換。
ReportFunc 争点表/閲覧状態文字、進行管理 ①~⑦、A~D/A'モデル日付。
DateFunc 帳票起訖日、4 月/7 月年度起點、基準日起訖チェック。
DBImport/DataConvert 資料庫匯入、表格轉換與管理者遷移功能。

開啟主輸入表單時,OpenArgs區分「新規、更新、複写」。SelData一次把三張表的大量欄位搬到表單;更新時又逐一搬回。這是典型 Access「巨型表單+程序式資料映射」架構,業務規則散落在表單事件、模組、欄位說明與查詢中,而不是集中在一個領域層。

已確認的技術風險與疑似缺陷

以下不是對業務好壞的評價,而是「若你要維護或重建,最容易出事故的地方」。

優先度 問題 證據與後果
三表寫入沒有交易 新規/更新依序操作三張表與関連レコード,未找到 BeginTrans/Commit/Rollback。中途錯誤可能只完成前半,形成三表不齊;SelCheck雖能偵測,不能自動復原。
総総自動重算被停用 負責加總同組 SUM(実)SUM(総延)UpdSousou仍存在,但新規、更新、削除後的呼叫都被註解。總計需人工維護或可能陳舊。
11 碼受付番号與複写算法衝突 驗證允許 11 碼(第 4、7 位為連字號)及 12 碼(第 5、8 位為連字號),但複写永遠取前 8 字元再接 4 位號。11 碼格式的第 8 字元已是尾號首位,複写會生成不同長度/錯誤前綴。
疑似複製貼上錯誤:次席決裁 UpdKanren1同步 次席決裁時,判斷的不是次席決裁F,而是表單與目標行的浄書終了F。高機率是 copy-paste 缺陷,會讓使用者設定的次席決裁例外旗標失效。
中高 新しい関連グループ的同步分支被停用 UpdKanren2完整存在,但更新按鈕中的呼叫被註解。改掛新的親レコード後,哪些欄位應同步到新組可能與原設計不一致。
中高 日期矛盾可無理由覆寫 使用者按「是」即可保存,沒有要求例外原因、審批或審計記錄。
中高 一年內排除沒有自動公式 只有單一排除起訖與參考輸出;官方口徑可能有多段中斷。若人工計表遺漏,績效數字會受影響。
中高 隱藏的破壞性遷移功能 啟動マクロ只呼叫 proctest()控制按鈕顯示;以 Access 命令參數 1 啟動時會顯示「テーブル移行」。其轉換程序確認後會削除非系統表,再按已存匯入規格重建。這應只在可復原備份與受控作業下使用。
明文匯出到固定路徑 管理按鈕可把三張核心表輸出到 C:\temp文字檔。資料含請求人、住所等、電話與敏感稅務內容,必須有權限、加密、留存與削除政策。
SQL 字串拼接 多處直接把受付番号、請求人等拼進 SQL。即使是內部桌面程式,單引號、特殊字元與非預期輸入也可能造成查詢錯誤;應改參數化。
規則散落且硬編碼 A~D 模型天數、報表年度、完成條件、代碼含義分散在 VBA、查詢、表單與 694 張報表;改一個口徑很容易漏改。
直接テーブル入口可能繞過フォーム規則 主選單有直接打開核心テーブル的管理入口。若操作員直接編輯テーブル,VBA 必須チェック、日付警告與関連同步都不會執行。

如果你要重建:不要照抄 409 欄巨表,要還原成領域模型

目前設計把「一件案件的一切」橫向鋪成欄位。新系統更適合把可重複、可多輪、可追歷史的東西變成子實體:

建議實體 承接目前哪些概念
AppealRequest/審査請求 一份請求書、親レコード、関連受付番号、整組總計、提出與収受経路。
Party 請求人、共同、代表者、代理人、補佐人、参加人、原処分庁;角色與聯絡資訊分開。
Matter/実件 税目、年分、事件種、争点、原処分、事件処理区分歷史、実與総延。
ChallengedDisposition/延件 每個獨立計件的處分,代替自動複写的寬資料行。
PanelAssignment 担当審判官、参加審判官、部門、分担者、指定與變更歷史。
MilestoneEvent 所有「答求、初合、議決、法了……」改成事件類型+實際日+來源+備註,不再一日期一欄。
PlanRevision 当初計画、每次修正計画、修正理由與版號,保留完整歷史而非只留「当初/最新修正」。
Submission/DocumentRequest 答弁、反論、意見、回答、要求書類、多輪期限與收受;用角色和文書類型區分。
InvestigationActivity 面談、質問、檢查、資料要求、留置/返却、本部照会、最多五輪調査。
AccessCopyRequest 閲覧、写しの交付、謄写、頁数、費用、納付、減免、交付;可有任意多輪。
HoldPeriod/ExclusionPeriod 留保、再開與一年內統計排除;允許多段、原因、核准與計算結果。
Decision 議決、裁決、処理態様、取消事由/却下事由/取下事由、取消金額、裁決番号、公表判定、発送與送達。
AuditTrail 誰在何時改了什麼、覆寫哪個警告、為何手動調整収受日或統計口徑。

新系統至少要守住的資料不變條件

  1. 受付番号對外唯一,但內部主鍵用不可變 UUID;改受付番号不等於改實體身份。
  2. 一份 AppealRequest 必有且只有一個親レコード;同組 Party/Matter/Disposition 都指向同一根。
  3. 総総実総総延不由人輸入,而由明細即時計算;必要時保存報表快照,但不可有兩個真相。
  4. 新規登録一件及所有子項必須在同一交易中成功或全部回滾。
  5. 日期順序分成「絕對禁止」與「允許例外」;例外需原因、權限、時間與審批記錄。
  6. 法定期限、官方標準期間、內部模型日程是三種不同規則,分開配置、分開顯示。
  7. 同一事件可有多次分類変更、多次計画修正、多次留保、多輪文書與閲覧,不用固定 1/2/3/5 欄位。
  8. 報表明確標示計件口徑(請求書/実件/延件)、期間起點(収受/収調)、完成點(議決/裁決/発送/送達)與排除條件。
  9. 個資與稅務敏感資料採最小權限、加密、匯出審批、下載追蹤與保留期限。

最安全的重建順序

  1. 先定義字典:把本文末的待確認問題逐一取得業務簽認。
  2. 做唯讀對帳層:先用視圖重現現有 727 查詢中真正被使用的口徑,不急著改 UI。
  3. 建立正規化領域模型:保留舊受付番号作外部識別,建立映射與資料品質報告。
  4. 先遷移計件與主時間軸:這兩塊是所有報表共同底座。
  5. 逐組替換文書/調査/閲覧:把固定輪次欄位改成可重複子表。
  6. 雙跑報表:新舊系統以同一基準日比較実件、延件、未済、平均処理期間及処理態様,差異必須能逐件解釋。
  7. 最後才關閉 Access 寫入:在交易、權限、審計、備份與回退全部驗證後切換。

重建前,一定要拿去問業務的 16 個問題

  1. A、B、C、D、E、A'的正式定義、選定條件與可變更權限是什麼?
  2. 請求書、実、延、総延、総総実、総総延的正式統計定義,是否與本文三層模型完全一致?哪些本税/加算税組合要合併計件?
  3. 収調在什麼情況可改、由誰核准、是否必須保留原収受日與理由?
  4. 形回、予担回、文合、法回、再法、三次受理的正式全稱與完成條件是什麼?
  5. 每一張報表的「処理完了」到底用議決、裁決、発送還是送達?為何不同?
  6. 一年內比例的排除期間由誰認定?可否多段?起訖日是否含首尾?目前外部怎麼計算?
  7. 関連同步的 F 旗標由誰操作?-1 是永久例外、單次例外,還是只對親レコード同步有效?
  8. 次席決裁使用浄書終了F是否確為缺陷,或有極特殊業務意圖?
  9. UpdSousouUpdKanren2為何停用?是歷史事故、人工流程,還是已由外部作業取代?
  10. 11 碼受付番号目前還在使用嗎?若使用,自動複写如何避免前綴錯誤?
  11. 日期警告允許覆寫是否有紙本/外部審批?哪些日期其實應該硬性禁止逆序?
  12. 事績処理3與「暫定版補完入力」是否仍屬正式業務?若是,0 筆是尚未上線還是資料在別處?
  13. 公表、重要事件、情報共有、本部照会與相互審査代碼的維護責任和生效日期如何管理?
  14. 削除整組、直接編輯核心表、C:\temp匯出與「テーブル移行」的正式操作手冊、權限與備份程序在哪裡?
  15. 目前有沒有獨立的變更履歷、使用者權限與覆寫記錄?若沒有,稽核時如何還原誰改過資料?
  16. 694 張報表中,哪些仍在法定/管理作業使用,哪些只是歷史版?每張的業務 owner 是誰?

最後一張小抄:只記住這 12 句就夠了

  1. 這是案件管理與統計系統,不是自動法律判斷器。
  2. 一份請求書可以有多個実件;一個実件可以有多個延件。
  3. 関連受付番号把整組綁在親レコード;親レコード的請求書=1。
  4. 同一受付番号在三張核心表各有一行。
  5. 収調有值時,報表不用原収受日,而用収調算期間。
  6. 議決是合議体結論;裁決是正式行政判斷;発送與送達又是後續節點。
  7. 却下是程序不適法,棄却是實體理由不成立,取下げ是審査請求人自行取下。
  8. 日期矛盾目前只是警告,使用者可以繼續。
  9. F=-1代表不要把親レコード值同步覆蓋到此欄。
  10. A~E是內部事件処理区分;固定加天數是管理モデル,不是法定期限。
  11. 一年標準期間是官方目標;排除期間的完整計算不在這份 VBA 裡。
  12. 重建時先保計件、関連、時間軸與帳票口徑,再談漂亮畫面。

官方驗證來源

法令與運用會更新。本文核對時間為 2026-09-02;實際開發上線前,仍應重新確認當時生效版本及內部業務規程。

分析方法與可信度

原始 ACCDB 以 Access Automation Security 強制停用 VBA/マクロ後唯讀盤點;匯出所有テーブル、クエリ、フォーム、レポート、マクロ、モジュール定義,再對核心 CRUD、驗證、関連同步、日付函式、レポート函式及關鍵クエリ逐段追蹤。原檔未被修改,啟動マクロ及匯入/轉換程序未執行。

最有把握的是:三表結構、関連、欄位群、CRUD 順序、日付チェック可覆寫、関連複写、計件集計函式、硬編碼モデル日程與已註解呼叫。仍需內部確認的是:A~E與若干縮寫的正式業務定義、停用程式碼的決策背景、各帳票 owner,以及一年內排除的實際外部作業。

一句收尾

讀懂這個系統的關鍵,不是背下 409 個欄位,而是抓住四條主線:誰在爭、爭幾個處分、程序走到哪裡、報表按什麼口徑計數。只要這四條在新系統中被建模正確,舊 VBA 再龐大也能逐層拆掉;若這四條沒定義清楚,換任何技術都只是在重做一個更漂亮的混亂。

This article was last edited at