This one’s quite baffling. The scenario is this:
1. I have my VBA Customizations on a 64 Bit Live Environment.
2. I wanted to setup a Dev Environment so that I can work on Enhancements and Additions. The Dev Environment is nothing but my laptop and it’s quite obviously 32 Bit.
3. I had DBs restored from Live and GP installed with necessary addons on my laptop.
4. Imported Modifier/VBA Customizations from Live to my laptop. There we go with an error message, which I am yet to solve:
And it took me to the VBA Editor. Since it said “VBA6.DLL is not found”, I wanted to check whether all References are proper. And below is what I found:
See the highlighted path and filename. It’s completely different from what it has to be “VBA6.DLL”.
Excellent and a pat on my back. Now why this is happening. I found the reason when I cross checked Live Environment VBA References:
Alright, the issue is this:
1. On a 64 Bit Server, GP and VBA Files are installed on Program Files (x86) folder.
2. Whereas on a 32 Bit machine, GP and VBA Files are installed directly on Program Files folder.
That’s the difference. Once you import and start GP it does work for the first time. Once you close GP and reopen it, it refers to (x86) folder. Since it’s not found, it starts throwing this message.
The sad parts: Firstly, I won’t be able to change the path back to Program Files folder manually by clicking on BROWSE in the References window. Secondly, I won’t be able to remove the reference by unselecting it and then reattach the VBA6.DLL reference. It will always throw me an error message like this:
I am in a fix now. We may have some other ways to handle this. I am working on that. There may be a followup post which will explain the methods that can be used to fix this issue.
Meanwhile, if anyone has faced this issue, do share your ideas and how you fixed it. It would save me some time.
UPDATE – 1: The reason explained above is substantiated, when I did another test. I imported 64 Bit Server VBA Customizations onto another 64 Bit Environment, it works. I imported a 32 Bit Server VBA Customization onto another 32 Bit Environment, and it works.
UPDATE – 2: The reason that I had explained in this article, is only partial. There are more to this issue. My next article explains the solution and also contains a link to Dynamics GP Partner Forum post, which led to a fix. Read it here: Solution to “File Not Found: VZBA6.DLL” Error Message.
Hi Vaidy,I have a similar problem to you in that I want to change the VBA Reference for "Visual Basic For Applications" from c:\windows\system32\msvbvm60.dll to c:\program files\common files\microsoft shared\vba\vba6\vbe6.dll. I have imported the package onto another machine from my machine which has the correct path but on the new machine it has automatically assigned the reference to the wrong one. Have you found a way yet to change this reference?Jo
Hi Jo,I have got a Partner Forum Link which I am referring to at the moment.Once I am succeeded by following the steps mentioned, I will be updating this post with what needs to be done.Vaidy
This post was very helpful. I was facing a similar kind of issue, trying to copy the VBA package file from 32bit machine to 64bit. Eventually, it did not work, then I referred the link and it solved my problem.