We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you two Citrix podcasts. Learn about 2020 trends and get answers to your biggest Citrix questions!Listen Now


A script to try opening a file until correct App Version is found

Medium Priority
Last Modified: 2010-04-16
Good morning scripting experts

I've had an idea to an issue that fairly frequently arrises.  We use MYOB software and receive ledgers from a range of software versions.  We do have 3rd party software that helps us ascertain which version of the MYOB software we need to use to open the software.  Trouble is the 3rd party software doesn't always corrently identify the version of MYOB required to open the ledger file.  When this happens we then have to open all versions of MYOB sequentially and try the ledger and see if it is the correct version.  Quite tedious.  I have copied all MYOB application shortcuts to my desktop and can drop the ledger file onto each shortcut and see if it opens, if it does, happy days, if it doesn't then I try the next version of MYOB etc. Better but still tedious.

Soi thats the situation, how can you experts help me with scripting?

From a high level view it would be great if the script could

ask for the path to the ledger file
Try and open the 1st version of myob using the supplied ledger file
Ask the user if the ledger opened via a msgbox
If the ledger did open ok then end script otherwise try the next version of MYOB

Thanks for input on this one

Watch Question

Most Valuable Expert 2012
Top Expert 2014

Hi Rob,
Before we go down that track, is there ANYTHING in the File Properties of the Ledger file that tells you anything about the MYOB version?  That's a long shot, but worth asking......

Otherwise, we'll look at doing what you have mentioned....



Afraid not. Well not overly.  The MYOB apps have different extetnions
.dat = Accounts Plus
.prm = Premiere
.myo = Newest ledgers that include Accounts Plus and Premeire

The file properties are empty for these files though, the 3rd party software once it sucessfully ascertains the version of MYOB writes the MYOB into file properties so subsequent opening are quicker.

Talking of Long shots - Do you happen to be Rob from Dartford? I used to work with another Rob when I worked at Apple Computers a few years ago with the same name :-) Could it be you? :-)
Most Valuable Expert 2012
Top Expert 2014
No, if the Dartford you are referring to is in England, that's quite a distance from Victoria, Australia. Sorry.

OK, so try this VBS file and see how you go.  Note that you will need to change the arrMYOBs values to reflect your MYOB versions:
Dim arrMYOBs
arrMYOBs = Array( _
      "C:\Program Files\MYOB Accounting Plus\MYOB.exe", _
      "C:\Program Files\MYOB Accounting\MYOB.exe", _
      "C:\Program Files\MYOB First\MYOB.exe" _

Dim objDialog, intResult, objFSO, objFile, strOption, objOption
Const intForReading = 1

Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "All Files (*.*)|*.*"
objDialog.FilterIndex = 1
objDialog.InitialDir = "."
intResult = objDialog.ShowOpen

If intResult = 0 Then
    MsgBox "No file was selected. The script will not continue."
End If

strFileName = objDialog.FileName

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")
For intCount = LBound(arrMYOBs) To UBound(arrMYOBs)
      strCommand = """" & arrMYOBs(intCount) & """ """ & strFileName & """"
      'MsgBox strCommand
      objShell.run strCommand, 1, False
      strResponse = MsgBox("Did the ledger file open correctly?", vbYesNo, "Did the file open correctly?")
      If strResponse = vbYes Then Exit For

MsgBox "Done"



Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts


re England: Yes it was England, oh well.

Anyway, that is awesome mate.  Have tested it and it works sweet. Thanks so much
Most Valuable Expert 2012
Top Expert 2014

No problem.  We could probably go a little further and narrow down the programs it tries to open with, according to the file extension, if you're interested?  But that would only prevent two or three attempts.....and you can always change the order of the arrMYOBs lines, to emulate a "preference".


Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.