How do I resolve "Run-time error '429': ActiveX component can't create object"? - dll

My company has a VB6 application using Crystal Reports 7 which a client has asked to be installed on Windows 7 32 bit. It is currently installed on Windows XP 32bit SP2 machines at the client. Connection to the DB is done via ODBC to SQL Server 2000 instance on another server.
On Windows 7, the installation works fine, however when you try to open the application, the error is given.
I have looked at the following:
Registering all the dll's and ocx files using regsvr32. Some will not register as they either are registered already or the following message is given "Make sure that "[name].dll" is valid DLL or OCX file and then try again." I read this forum thread regarding this: http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
Monitored the opening of the application using a ProcessMonitor application to try and spot if there is a missing dll or ocx file - this does not seem to be the case.
Reviewed the application according to this list and nothing seems to be against these guidelines
I've noticed two items in the knowledge base that relate to this
http://support.microsoft.com/kb/281848 - the comdlg32.ocx bundled with the application is version 6.0.81.69 and the one in the system32 folder on the dev machine (WinXP 32 bit) is 6.1.97.82. However if this was the issue then surely it would not work currently?
http://support.microsoft.com/kb/184898 - I'm not sure how to confirm that this is the issue
Finally, due to complexities, I am not allowed to make code changes to this application. Even if I was, I'm not a VB6 programmer, just the guy who got the terribly support project! If code changes are required, then I'll have to investigate using WinXP mode.
Update: I get the same error in XP Mode. That's a Win XP with SP3 VM. This runs on a Win XP SP2 VM, is there potentially something in SP3 that would have caused this to occur? Or is it just a fact of it being XP Mode?

I got the same error but I solved by using regsvr32.exe in C:\Windows\SysWOW64.
Because we use x64 system. So if your machine is also x64, the ocx/dll must registered also with regsvr32 x64 version

The file msrdo20.dll is missing from the installation.
According to the Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7 this file should be distributed with the application.
I'm not sure why it isn't, but my solution is to place the file somewhere on the machine, and register it using regsvr32 in the command line, eg:
regsvr32 c:\windows\system32\msrdo20.dll
In an ideal world you would package this up with the redistributable.

This download fixed my VB6 EXE and Access 2016 (using ACEDAO.DLL) run-time error 429. Took me 2 long days to get it resolved because there are so many causes of 429.
http://www.microsoft.com/en-ca/download/details.aspx?id=13255
QUOTE from link:
"This download will install a set of components that can be used to facilitate transfer of data between 2010 Microsoft Office System files and non-Microsoft Office applications"

You say it works once you install the VB6 IDE so the problem is likely to be that the components you are trying to use depend on the VB6 runtime being installed.
The VB6 runtime isn't installed on Windows by default.
Installing the IDE is one way to get the runtime. For non-developer machines, a "redistributable" installer package from Microsoft should be used instead.
Here is one VB6 runtime installer from Microsoft. I'm not sure if it will be the right version for your components:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c

Related

Creating instance of a class registered in SysWOW64

I have migrated my website from Windows Server 32 bit to Windows Server 2008R2 64 bit. The website has a VB6 dll that is being used for all the funcitons.
I have registered the 32bit dll by placing it in SysWOW64 folder. Also, I am able to see the classed registerd using regedit.exe in SysWOW64 folder.
But, when I tried creating instance in VB "Server.CreateObject('myclass')", I am getting error
"Error:429 ActiveX Component Cant create object"
The same works in the existing 32bit server.
Am I missing anything here. Or should I use a different line on creating instance for the class I registerd. Please let me know.
finally did it.. needed to install vb 6 runtime, copy ishims.dll from Program files-> Internet Explorer to syswow 64 ( weird my dll had dependency on that) and lastbut not the least change Data Execution Prevention settings...
You need to run your website in 32 bit mode in IIS 7.5 manager.

How to install CR10 runtime on win7 64bit

I'm using the Crystal Report 10 viewer ActiveX control in an Access App I've written. Works great in Office 2003 on 32bit versions of Windows. The problem arrises when I try to run the program in 64 bit Windows (with 32bit Office). I get the following error:
Run-time error '429': ActiveX component can't create object
I get this error on the following line of my VBA code.
Set rdApp = CreateObject("Crystalruntime.application.10")
How can I get this to work in 64bit?
I don't have any specific experience with Crystal Report, but I do have some experience with installing components on a 64-bit Windows environment that were intended for 32-bit Windows, so here are some general suggestions of things to try:
Before installing, try loosening the security privileges - I have Windows Server 2008; on this OS, they're under Start | Administrative Tools | Local Security Policy. Many old installers are thwarted by these controls. You'll want to return them to their defaults after the install.
Make sure that you run the installer with admin privileges (right-click; run as Administrator).
Examine the installation log for Crystal Report - it may indicate a failure registering a component. In one instance, I was able to get the installation working by running the command to register the failed component manually, on an administrator-privileged command line (the command was in the log).
If acceptable, try to create a Windows Virtual Machine running a virtual Windows XP, and try the installations there (this might be a bit tedious, due to your need for MS Office).
Take a look at VMWare's ThinApp - this is intended for packaging applications for administrators, but this was the solution we ended up using to shield one of our 32-bit apps from Windows 64-bit perils
Hope this helps; we struggled for awhile trying different things to get our legacy apps working on a 64-bit environment.

Installing simplest plugin on German Windows XP

I'm trying to figure out why the simplest firebreath plugin wont install on a German Windows XP SP3. I'm running Windows XP as a virtual machine.
The event viewer in Windows XP tells me something about the Windows Installer aborting but not why. I'm logged in as the administrator.
The installer works on Windows 7.
For development I use Windows 7, Visual Studio 2010 and some one months old firebreath trunk.
Is this is known problem? What are the typical steps I could use to track down the issue?
Regards,
Christian
If you get an error saying module can't be found it means that you are missing a .dll file needed to make the plugin work. The most common if it works on most computers (or many) but not that one is that your .dll was compiled with a dynamic runtime, in which case you'll have to install the common runtime for whatever version of visual studio you compiled it with.
For example, the runtime distributable for vs2008 is at http://www.microsoft.com/en-us/download/details.aspx?id=29
Dependency Walker might help you to find out which dll is missing.

Running .EXE file made in visual studio 2005 failure

I would like to run a .exe file made with visual studio 2003 but I get an error every time I run it on a windows 7 machine, vista machine, and xp machine. The error on Windows 7 and vista says "application has stopped working" and then makes me close the error box.
In windows xp it's a little different error, "the application failed to operate (0xc0000135) Click on OK to terminate the application."
That error code seems to indicate the application failed to initialize correctly.
It is possible that the anticipated .NET version is not present.
As far as I know, VS 2003 by default compiles against the .NET 1.1 library. There is no straightforward way of installing this on a Windows 7 or Vista box. Do you need to compile it against the .NET 1.1 library, or can you load it in VS2005, change the output .net version to 2.0 or higher, and recompile the application?
If you have the source code to the application, try running the application in debug mode and stepping through line by line until you find the exception. If you do not have the source code, possibly try running the application in a couple different compatibility modes. Another option to try is to check the windows event log for anything more specific.
If you want to get really deep into it, you can use SysInternals ProcMon.exe and filter on the failing exe to view the WinAPI calls that are happening during the failure.
Also, a basic search of forums shows that error is usually accompanied with framework issues. Either recompile the application or check out what your required framework is in the VS2003 project settings.

the microsoft.ace.oledb.12.0 provider is not registered

I am creating an application using vb.net and access 2007. My OS is in 64bit, windows 7. I already change my TargetFlatform in to x86. But when I run the program error occured "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine". I tried to search with google for a solution but no luck.
any help would greatly appreciated.
Thanks in advance
you must install Access Database Engine, see the following link
http://www.microsoft.com/download/en/details.aspx?id=13255
Regards.
There is a problem with Microsoft.ACE.OLEDB.12 when AccessDatabaseEngine x86 or x64 2010 is installed.
I have long attempted to use the SSMS (2005-2008-2008R2-2012) Export Wizards to export large tables onto Excel and I needed the AccessDatabaseEngine installed to be able to do that.
However, regardless of the MS Office version (2010, x86 or x64, or whatever it is), the 2010 version of AccessDatabaseEngine will not work towards registering the provider.
The solution is to download and install the previous one which is none other than the 2007 x86 one.
This one will work even if Office or SQL Server or VS are x64.
Download it from here http://www.microsoft.com/en-us/download/confirmation.aspx?id=23734
Now, any other propagated issues revolving around the notorious failure to register "the provider" on the local machine for the Microsoft.ACE.OLEDB.12 should be resolved by the above.
Feel free to paste me your experiences on this matter.