Still Not Giving In

I’m still using MS Money.  And I’ve come across a couple of instances of it beginning to lose compatibility with modern systems.  So now, I’ve actually started creating workarounds for them.

I’ve used a variety of online accounts in my many years.  I’ve used HSBC, Capital One (the non-360 variant), Sallie Mae, and most recently, Ally.  At this point, I’ve decided Ally is getting all my business and I’ve been in the process of moving accounts into new Ally subaccounts, which is very easily done on their part.  Just today, I discovered the transaction download feature.  There’s no MS Money OFX option, but I don’t think Money existed anymore when Ally came on the scene.  Anyway, there is a Quicken download, so that is what I use.

MS Money is awesome in that it supports QFX files, however, the standard format of the file must have moved on in time, so now Money throws up when it tries to process the file.  After a bunch of trial and error, I discovered that the reason for the error is a node in each transaction entry for the check number: <CHECKNUM>0</CHECKNUM>. Once you strip that node out, the file imports just fine. 

In another case, my 401k provider, Transamerica, recently revamped their transaction download and their QFX files have a different problem.  The file headers look like:

OFXHEADER: 100
DATA: OFXSGML
VERSION: 102
SECURITY: NONE
ENCODING: USASCII
CHARSET: 1252
COMPRESSION: NONE
OLDFILEUID: NONE
NEWFILEUID: NONE

But there is a space after the colon, which causes MS Money to report the file is corrupt.  The header should look like:

OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

So I made a script that will alter the QFX file and then launch the Money importer.  All you have to do is drag the QFX file onto the VBS file and you’re good to go.  If you want to get clever, you can put the script in your SendTo folder or map it as a default application.

Without further adieu, this is the content of the script:

dim fso,f,s,shell

set fso=CreateObject("scripting.filesystemobject")

set f=fso.OpenTextFile(WScript.Arguments(0),1)
s=f.ReadAll
f.close
set f=nothing

set f=fso.OpenTextFile(WScript.Arguments(0),2)
f.Write Replace(Replace(s,"<CHECKNUM>0</CHECKNUM>",""),": ",":")
f.Close
set f=nothing

set fso=nothing

Set shell = CreateObject("Shell.Application")
shell.ShellExecute "C:\Program Files (x86)\Microsoft Money Plus\MNYCoreFiles\mnyimprt.exe",  WScript.Arguments(0)
set shell=nothing

And then, you can import QFX files from Ally or Transamerica (and maybe some others that have the same problems) into MS Money without any errors.