• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 218
  • Last Modified:

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

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

Rob
0
robjeeves
Asked:
robjeeves
  • 3
  • 2
1 Solution
 
RobSampsonCommented:
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....

Rob.
0
 
robjeevesAuthor Commented:
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? :-)
0
 
RobSampsonCommented:
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."
    WScript.Quit
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
Next

MsgBox "Done"
'=================

Regards,

Rob.
0
 
robjeevesAuthor Commented:
re England: Yes it was England, oh well.

Anyway, that is awesome mate.  Have tested it and it works sweet. Thanks so much
0
 
RobSampsonCommented:
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".

Regards,

Rob.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now