Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Error: ActiveX component can't create object

Posted on 2006-04-24
25
Medium Priority
?
1,492 Views
Last Modified: 2012-08-13
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.
0
Comment
Question by:eliavm
  • 12
  • 10
22 Comments
 
LVL 10

Expert Comment

by:fostejo
ID: 16528723
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
 

Author Comment

by:eliavm
ID: 16535308
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
 
LVL 10

Expert Comment

by:fostejo
ID: 16536691
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
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 

Author Comment

by:eliavm
ID: 16536988
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
 
LVL 10

Expert Comment

by:fostejo
ID: 16546968
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
 

Author Comment

by:eliavm
ID: 16547672
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
 

Author Comment

by:eliavm
ID: 16547913
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
 
LVL 10

Expert Comment

by:fostejo
ID: 16547992
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
 
LVL 10

Expert Comment

by:fostejo
ID: 16548029
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
 

Author Comment

by:eliavm
ID: 16548044
Microsoft MDAC component checker didn't find any problem.
I repared MDAC anyway and still the same error..

:/
0
 

Author Comment

by:eliavm
ID: 16548125
The results I get in the Mismatch Field  column are "None" for all files.

Yes, I rebooted.

:/

Any other suggestions ?
0
 
LVL 10

Expert Comment

by:fostejo
ID: 16565757
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
 

Author Comment

by:eliavm
ID: 16569930
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
 
LVL 10

Expert Comment

by:fostejo
ID: 16572721
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
 

Author Comment

by:eliavm
ID: 16572745
Both machines has full version of access.
The XP machine has access 2003 and the 98 machine has access 2000.
0
 

Author Comment

by:eliavm
ID: 16572747
How do I check if it uses Crystal reports ?
0
 
LVL 10

Accepted Solution

by:
fostejo earned 900 total points
ID: 16572823
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
 

Author Comment

by:eliavm
ID: 16572925
[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
 
LVL 10

Expert Comment

by:fostejo
ID: 16573612
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
 
LVL 10

Expert Comment

by:fostejo
ID: 16573640
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
 

Author Comment

by:eliavm
ID: 16878320
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
 

Author Comment

by:eliavm
ID: 16878347
By the way, I'm accepting fostejo' answer because it's the most helpfull answer.
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses

564 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question