Click here to Skip to main content
13,357,363 members (63,440 online)
Click here to Skip to main content
Add your own
alternative version


64 bookmarked
Posted 10 Jan 2007

Personal Finance Application

, 10 Jan 2007
Rate this:
Please Sign up or sign in to vote.
Utility to keep track of personal finances

Sample Image - maximum width is 600 pixels


Utility to keep track of money, expenses, investment, etc.



Money goes from one account to other account. There are 3 types of accounts:

  • Neutral: This type of account is in your system, you own this accounts.

    Samples: Cash, Bank Accounts, Cash in other currency.

  • R+: This type of account puts money into your system. They put the money into neutral accounts.

    Samples: Salary, Interests, Income.

  • R-: This type of account takes money out of your system (and you never see it again).

    Samples: Supermarket, bills, grocery, electronics, gas, bus, furniture...everything you buy.

  • R+ to Neutral (you earn money)
  • Neutral to Neutral (you move money)
  • Neutral to R- (you loose money)Transaction Samples
From: Sallary
To: Bank A Account
Amount: 3000
Here you earn money, money goes from R+ to Neutral.
From: Bank A Account
To: Cash
Amount: 3000
Here you move money. You don't loose and you don't earn. This is an ATM extraction. Neutral to Neutral.
From: Cash
To: Electronics (New TV)Amount: 100
Here you loose money. Money goes from Neutral to R-.
Currency Exchange Buy
From: Cash
To: Buy foreign currency
Amount: 1250
Your dollars dissapear. You loose them.
From: Euro Buy
To: Euro Cash Amount: 1000
Euros appear to your Euros Cash. You "earn" them

Currency Exchange Sell

From: Euro Cash
To: Euro Sell
Amount: 1000
Your euros dissapear. You loose them.
From: Sell foreign currency
To: Cash
Amount: 1250
dollars appear to your Cash. You "earn" them

Both operations are done in two steps, because both accounts of transactions should have the same currency. If not, there could be a lot of problems.

Using the utility

The utility comes with a sample database of accounts. Just check if they fit with your needs. Then enter than transactions. The first ones should be from "A - initial" to "A".

In Statistics, if you don't enter the account name, you get the sum of earnings and loss.


  • With backspace you delete the selected account in the combo. You can select the account with the shortcut
  • You can put this app in the windows startup minimized with the /MIN param. It should go into:

    Create a key with: "{Path}\CashM.exe /MIN"

  • To compile in spanish, replace the .rc file, with the languages/spanish. Delete the .aps file.
  • Security: if you don't want other people see your data, put the db into a zip with a password. Extract it to use it and when done, put it again on the zip. I thought about encrypting the data in the database, but then, I wouldn't be able to use SQL. More problem than solution.
  • You can see and change the database with SQLite Database Browser. You can also perform SQL queries against the database.
  • The same way you buy and sell euros, you can do with stock papers, or even investment. For example, you can define MSFT as a currency, define the 3 accounts as the Euros example in Accounts. (MSFT: MSFT Paper, MSFT Sell, MSFT Buy, MSFT Inicial, all of them of "MSFT" currency). Finally, in Cash, you should define "Buy Stock", "Sell Stock". The "conversion" in currency would be the paper value.
  • Play with the app a while before entering real data, so you get to know it.
  • Do some backup of the db periodically.
  • As the exe has the database engine inside and the MFC is linked, you can run this on any Windows. You can put the exe and the db in a zip, upload it to the web, and access it from every machine with internet connection.
  • The Cash Correct + Account is used if, for example, you find money in your pocket or in the street. The Cash Correct - Account is used when you "loose" cash, for example, burning, loosing coins, etc. I also use these accounts when I check the Cash total (Statistics) and I find numbers don't match (for any reason).

Points of Interest

I used in it A LOT of components from codeproject. Thanks a lot to all the people who wrote them, I wouldn't be able to build this thing without them. I first built a .NET app to keep track of money, but .NET was slow back then (2001) and graphics weren't good. Then I used an SQL Sever database and finally, an excel worksheet. This is an improvement on all of them. I found similar apps like Monex and other but....they don't fit my needs and they get complicated in some operations. I intend to improve this thing, mainly because I use it.

The code got a little "wired" while building the app, in case you decide to change it. I'll probably improve it in the next version. This utility compiles with VC++ 2005 with warnings.

English is not my first language, so please excuse any errors there. This is my first CodeProject article.

ToDo List

  • Printing
  • Code improving
  • Graphics improving
  • Virtual accounts
  • Import-Export
  • Unicode
  • Help


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer
Argentina Argentina
System developer from Argentina.

Programmed in VB 5,6,.NET, C#, Java, PL-SQL, Transac-SQL, C, C++ and even some "calculator" language.

Love to build small, useful applications.
Usually building big and complicated apps based on solid, reliable components.

Hobbies: reading, photography, chess, paddle, running.

You may also be interested in...


Comments and Discussions

GeneralMMEX Pin
Priyank Bolia11-Jan-07 3:47
memberPriyank Bolia11-Jan-07 3:47 
GeneralRe: MMEX [modified] Pin
ErnestoNet11-Jan-07 5:06
memberErnestoNet11-Jan-07 5:06 
GeneralRe: MMEX Pin
Priyank Bolia11-Jan-07 5:38
memberPriyank Bolia11-Jan-07 5:38 
GeneralRe: MMEX Pin
ErnestoNet11-Jan-07 6:07
memberErnestoNet11-Jan-07 6:07 
GeneralRe: MMEX Pin
ThatsAlok15-Jan-07 18:29
memberThatsAlok15-Jan-07 18:29 
GeneralRe: MMEX Pin
Priyank Bolia15-Jan-07 19:46
memberPriyank Bolia15-Jan-07 19:46 
GeneralRe: MMEX Pin
ThatsAlok15-Jan-07 22:15
memberThatsAlok15-Jan-07 22:15 
GeneralRe: MMEX Pin
NovaNuker17-Jun-08 6:40
memberNovaNuker17-Jun-08 6:40 
GeneralRe: MMEX Pin
ThatsAlok17-Jun-08 6:42
member ThatsAlok 17-Jun-08 6:42 
haan thats mean underwear friend!

GeneralDownloads not working Pin
Jozef Sevcik10-Jan-07 22:19
memberJozef Sevcik10-Jan-07 22:19 
GeneralRe: Downloads not working [modified] Pin
ErnestoNet10-Jan-07 23:46
memberErnestoNet10-Jan-07 23:46 
AnswerRe: Downloads not working Pin
Jozef Sevcik11-Jan-07 0:53
memberJozef Sevcik11-Jan-07 0:53 
GeneralRe: Downloads not working Pin
Emmanuel_Makaza15-Aug-08 3:14
memberEmmanuel_Makaza15-Aug-08 3:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.180111.1 | Last Updated 10 Jan 2007
Article Copyright 2007 by ErnestoNet
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid