What is the difference between what you've designed the Accounts hold and a Bank Account?
Also, why do you need to identify a "Primary Group" and why are you using 4 bytes to identify a credit or a debit?
I also hope you know enough about "Adjacency List" hierarchies to be able to constrain the tables to prevent "cycles" and duplicates in the hierarchical tables.
You've taken on a lot to chew and we haven't even started on the VB side of the code. My recommendation would be to your company would be to abandon this task and buy a copy of "Quick Books Professional" or some such. It'll save your company a whole lot on time and mistakes.
--Jeff Moden
Change is inevitable... Change for the better is not.