Error: ActiveX component can't create object

Hi all,

I've got a program that someone wrote for me (to manage databases and make report of them). I don't have the source code of it, only the setup files.

The Problem
------------
When I install and use it on Win98, everything works perfectly. But when I install it and run it on WinXP SP2, I recive the following error: "ActiveX can't create object". This error occure when I'm trying to produce a report and print it.

I have no idea what component is it and I can't reach the programer who made it, so I can't ask him as well...

Any idea ? I have to run it on XP machine.
eliavmAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

fostejoCommented:
eliavm,

This is frequently due to components either not registered or missing from the machine where the program is running.

If you've gone through the proper install, it's likely that the package has missed out some critical component(s) - this often happens when you attempt to install an internally (and badly) packaged piece of software that originally expected to be installed on a different 'build' of your corporate O/S - once which doesn't contain the expected 'base software'

Are the reports you refer to based on Crystal Reports? If so, it may be that the Win98 machine(s) already have CR (or an application that's installed CR runtime also) installed, while the XP machines don't current have it installed.

You might want to have a look at the latest version of Dependency Walker at http://www.dependencywalker.com/ which can help identify those modules which an application depends upon .. and are currently not on the machine.

cheers,
0
eliavmAuthor Commented:
I used Dependency Walker on my program's exe file and saw lot's of dll it uses. On the buttom of the window I see the following messages:

* Warning: At least one delay-load dependency module was not found.
* Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

How can I trace the curropt/unregistered dll ?
0
fostejoCommented:
eliavm,

The DLLs shown as you open the executable into Dependency Walker are the NON-dynamic ones - in order to get a more complete picture of what may be wrong, you'll need to use the 'Profile' option (F7) after loading you main executable into it.

This (after accepting the defaults in the dialog that is presented when you hit F7) will launch your software and monitor the modules it loads 'on the fly' - once you attempt to generate a report and trigger the error you can end your software in the normal fashion.   (Unfortunately, dependency Walker isn't *guarenteed* to identify everything your software may use..)

Dependency Walker will be monitoring your executable all the while and will log what it's doing in the its log window - once you've reproduced the error and ended your software, click into the DW log window and examine those entries marked in red - look out for 3rd party DLLs (such as Crystal Reports related ones for instance) and ignore those standard Microsoft O/S such MSVCRT.DLL, ADVAPI32.DLL etc. - hopefully, you may be able to spot something obvious... If not, post the 'Red' ones here and I'll see if there's any clues..

hope that helps.
0
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

eliavmAuthor Commented:
Note: the "..." mentioned ahead are black lines....

Red lines when I start the profile:
---------------------------------------
GetProcAddress(0x7C800000 [KERNEL32.DLL], "IsTNT") called from "MSVBVM60.DLL" at address 0x73421BD1 and returned NULL. Error: The specified procedure could not be found (127).
....
LoadLibraryA("C:\WINDOWS\system32\VB6HE.DLL") returned NULL. Error: The specified module could not be found (126).
....
GetProcAddress(0x00000000, "CtfImmCoUninitialize") called from "MSCTF.DLL" at address 0x7472279F and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "CtfImmLastEnabledWndDestroy") called from "MSCTF.DLL" at address 0x747227DC and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "CtfImmSetCiceroStartInThread") called from "MSCTF.DLL" at address 0x7472281F and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "CtfImmIsCiceroStartedInThread") called from "MSCTF.DLL" at address 0x74722864 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "CtfImmIsCiceroEnabled") called from "MSCTF.DLL" at address 0x747228A9 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "CtfImmIsTextFrameServiceDisabled") called from "MSCTF.DLL" at address 0x747228E5 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "CtfImmEnterCoInitCountSkipMode") called from "MSCTF.DLL" at address 0x7472292C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "CtfImmLeaveCoInitCountSkipMode") called from "MSCTF.DLL" at address 0x74722972 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetDefaultIMEWnd") called from "MSCTF.DLL" at address 0x747229B6 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmReleaseContext") called from "MSCTF.DLL" at address 0x747229EF and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmNotifyIME") called from "MSCTF.DLL" at address 0x74722A29 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmSetConversionStatus") called from "MSCTF.DLL" at address 0x74722A5C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetConversionStatus") called from "MSCTF.DLL" at address 0x74722A9A and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetProperty") called from "MSCTF.DLL" at address 0x74722AD6 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetOpenStatus") called from "MSCTF.DLL" at address 0x74722B0A and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetContext") called from "MSCTF.DLL" at address 0x74722B40 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmSetOpenStatus") called from "MSCTF.DLL" at address 0x74722B75 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmInstallIMEA") called from "MSCTF.DLL" at address 0x74722BAC and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetDescriptionA") called from "MSCTF.DLL" at address 0x74722BE2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetDescriptionW") called from "MSCTF.DLL" at address 0x74722C1A and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetIMEFileNameA") called from "MSCTF.DLL" at address 0x74722C52 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmGetIMEFileNameW") called from "MSCTF.DLL" at address 0x74722C8A and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x00000000, "ImmSetHotKey") called from "MSCTF.DLL" at address 0x74723168 and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsAlloc") called from "MSGPLUSLOADER.DLL" at address 0x10002421 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsGetValue") called from "MSGPLUSLOADER.DLL" at address 0x1000242E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsSetValue") called from "MSGPLUSLOADER.DLL" at address 0x1000243B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsFree") called from "MSGPLUSLOADER.DLL" at address 0x10002448 and returned NULL. Error: The specified procedure could not be found (127).



Red lines when I hit the "print report" buton
--------------------------------------------------
GetProcAddress(0x7C800000 [KERNEL32.DLL], "IsTNT") called from "MSDERUN.DLL" at address 0x57209A22 and returned NULL. Error: The specified procedure could not be found (127).
....
LoadLibraryExW("C:\Program Files\Common Files\System\Ole DB\Resources\1037\MSDASQLR.DLL", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: The specified module could not be found (126).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLColAttributesW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLErrorW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLSetParam") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLTransact") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLGetConnectOptionW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLGetStmtOption") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLSetConnectOptionW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLSetStmtOption") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLBrowseConnectW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLColumnPrivilegesW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLDataSourcesW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLDescribeParam") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLForeignKeysW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLParamOptions") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLPrimaryKeysW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLTablePrivilegesW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLDriversW") called from "ODBC32.DLL" at address 0x7432B54C and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLBindParam") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLGetEnvAttr") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).
....
GetProcAddress(0x4DD40000 [ODBCJT32.DLL], "SQLAllocHandleStd") called from "ODBC32.DLL" at address 0x7432B490 and returned NULL. Error: The specified procedure could not be found (127).


Thanks for your help!
0
fostejoCommented:
eliavm,

The only thing that stands out is the 'C:\Program Files\Common Files\System\Ole DB\Resources\1037\MSDASQLR.DLL' line (which is the 'Microsoft Data Access - OLE DB Provider for ODBC Drivers Resources')

This is an MDAC component I think - it could be that your current installation is damaged? ... Try installing the latest version of the Microsoft Data Access Components (MDAC v2.8 I think) - they may help and certainly shouldn't cause any issues .. find them at http://www.microsoft.com/downloads/   - I've not included a *direct* link to them as I see you're probably not wanting the English version?

hope that helps..
0
eliavmAuthor Commented:
I've tried to install it but when I start the installation I get a message that says that I'm using SP2 and it already contains the files I need and I can't install it......
Any idea how I can force it to install MDAC ?

(BTW I do use the English version)
0
eliavmAuthor Commented:
update:

Windows XP with Service Pack 2 contains MDAC version 2.81, which is currently not available for download at the Microsoft Web site as a standalone installation. If you try to install MDAC 2.8, which is the latest available standalone download of MDAC, you will receive a message that you already have a newer version of MDAC installed. Therefore, under Windows XP SP2, you must manually repair MDAC 2.81 as outlined below.


Followed the instruction on this page: http://www.macropool.com/en/download/mdac_xp_sp2.html

and it didn't help.

Tried also to downoad their program to re-register MDSC and JET and yet I recieve the same error message: "ActiveX component can't create object"

any idea, I'm desperate......
0
fostejoCommented:
eliavm,

You can repair the MDAC install if by following the instructions in http://support.microsoft.com/?kbid=899861#EBACAAA but before you do that, it may be worth running the Microsoft MDAC component checker against your current install - it may identify any issues; download it at http://www.microsoft.com/downloads/details.aspx?FamilyID=8f0a8df6-4a21-4b43-bf53-14332ef092c9&DisplayLang=en  - Run it and select an analysis type of 'perform analysis against the MDAC 2.8 on XP SP2' - it should indicate whether your current install is ok.

cheers,
0
fostejoCommented:
Looks like we've just cross-posted!! - try running the official Microsoft MDAC checker initially.. it may turn up something.  The macropool MDAC 'fixer' only re-registers a selection of the most important DLLs anyway I think, so it could miss something.  Did you reboot afterwards also?
0
eliavmAuthor Commented:
Microsoft MDAC component checker didn't find any problem.
I repared MDAC anyway and still the same error..

:/
0
eliavmAuthor Commented:
The results I get in the Mismatch Field  column are "None" for all files.

Yes, I rebooted.

:/

Any other suggestions ?
0
fostejoCommented:
Hi eliavm,

Ok, we've establish that your MDAC configuration is all ok, so we can rule that out as a cause...  ;)

Can you give me a little more information about the software please - do you know what the software is programmed in? VB6?   or what reporting engine it uses? Crystal reports? (version?)   Does it display any report interface at all prior to the error?

Also, have a look on the working Win98 machines are see what additional software is installed - if you can provide a list of the non-O/S software installed that may help.

cheers,


0
eliavmAuthor Commented:
Hi fostejo,

Here is some more info that might help....

A) when I lunch the program I have few buttons to manage my databases. One of the is print report. When I click it I have another window that askes me for the report ID number. and a button "print report" when I hit it I receive the error msg.
There  another button that for misc. reports. When I hit it I get another window whith a list of reports I can print, I select the desired report and when I hit print I see the eror message.

B) The program was created in 1999.

C) There's 2 mdb files the program uses. The first one is the database file: tales with the information. The second is the "program file": contains queries, reports, and linked tanles (linked to the first file). I can see the reports when I open the second file with MS Access and it works. I dont know what are crystal reports so I can't tell.

D) I looked at the 98 machine and the installation files. I see there the MDAC 2.1 installation. Nothing sepecial other then this.

Again, many thanx for your help up to here!
 
0
fostejoCommented:
Thanks eliavm,

Ok, so the software is connecting to an Access back-end, but we're not sure what reporting engine is being used..

You mention that you've opened up the database with Access- is this on the same machine causing issues and is it the full version of Access?

If it turns out to be the run-time only version of Access then, depending upon the way the software interacts with the database, you may HAVE to have the *full* version of Access installed for it to work - the run-time only version may not be sufficient...  Check to see if the full version is installed on the Win98 machines, if it is that's probably the answer..

cheers,
0
eliavmAuthor Commented:
Both machines has full version of access.
The XP machine has access 2003 and the 98 machine has access 2000.
0
eliavmAuthor Commented:
How do I check if it uses Crystal reports ?
0
fostejoCommented:
From the working version on the Win98 machine, if it uses Crystal Reports I think you should be able to tell from the report preview (there may be a help item or it'll show a business object logo in the top right usually - it's a series of green spheres I think!)

Alternatively, you could have a look for Crystal Reports related files in the Windows System32 directory - potential ones usually start with 'CR' or 'CP' and may include cpeaut32.dll, craxddt.dll, crdb*.dll etc.

I'm not 100% sure, but it's not impossible that the software can only work with Access 2000 and NOT 2003 - afterall, Access 2003 wasn't around when it was coded.  However, you'd *expect* that Access 2003 would be fully downwards compatiable - but I guess it depends upon how the software was written..

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
eliavmAuthor Commented:
[From the working version on the Win98 machine, if it uses Crystal Reports I think you should be able to tell from the report preview (there may be a help item or it'll show a business object logo in the top right usually - it's a series of green spheres I think!)]

Can't see anything like this here....

downwards compatiability: might be, I think my next move will be uninstalling Acess 2003, installing Access 2000 and see what happends....

I'll update you with the results (it might take some time to get Access 2000...)

If you think on any other reason for the problem I'll allways be glad to hear.


0
fostejoCommented:
Prior to uninstalling 2003 and dropping 2000 onto the machine, it may be worth ensuring that the latest VB6 run-time Service Pack is on the machine as they address a few automation issues (I'm making the assumption that the software was written in VB6 BTW ;) - won't do any harm and only takes a few minutes to install so it's worth a try..

They're at http://www.microsoft.com/downloads/details.aspx?familyid=7B9BA261-7A9C-43E7-9117-F673077FFB3C&displaylang=en

cheers
0
fostejoCommented:
eliavm,

Also, if you wish, I'm happy to have a play with the actual setup files you've got on my machine - I've got XP and Office 2003 installed also so I may be able to directly reproduce the issue which will make it much easier for me to investigate.

If you want to do that, upload them to a suitable location (or, alternatively, let me know and I'll give you a location to upload to) and we'll take it from there. At the moment, there are so many potential reasons for the error 429 it's obviously a tricky one to fix!

cheers again.
0
eliavmAuthor Commented:
no correct answer was provided. I'm closing this question.
I'll try to run my program on XP machine with office 2000 to check if it's running correctly. If so, the problem is with office 2003. If it's not wotking the problem is with winXP and I sould hope they'll fix it on the next SP (or Vista...).

Thanks for the experts who tried to help.

0
eliavmAuthor Commented:
By the way, I'm accepting fostejo' answer because it's the most helpfull answer.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic Classic

From novice to tech pro — start learning today.

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.