Solved

Compatibility

Posted on 2002-04-17
9
1,639 Views
Last Modified: 2010-08-05
Hi,

I made a small program that connects to an Access database, and that program was made in VB6 in a machine running Windows XP PRO.
After to use the Package & Deployment Wizard i've tried to install it in a Pc running W98 SE.
During setup an erro occurs (An error occured while registering the file 'C:\program files\commonfiles\system\msado26.tlb) i select 'ignore'
and the setup program is instaled OK.
When running the program i get:' run-time error '430':
'Class does not support Automation or does not suport expected interface'

Can anyone help me?
Thanks
0
Comment
Question by:JParente
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
9 Comments
 
LVL 2

Accepted Solution

by:
UncleMatt earned 200 total points
ID: 6947406
you need to install mdac (data access components)

if you use ADO to connect to the access DB then the msado26.tlb is the library for ADO so it wont work.

download mdac 2.61 from microsoft and install it on the client machine and then try it again.

Matt.
0
 
LVL 44

Expert Comment

by:Arthur_Wood
ID: 6947450
in addition, it is very rarely good idea to develop on a more rescent paltform than the OLDEST platform on which you expect the application to run.  That is, you sould NOT develop on Windows XP and try ti install on Windows 98.  It is very likely that there will be some support files, on the new operating system, which will NOT be compatible with the older Operating System.  You may be lucky in this particualr instance, but the genral advise is to develop on the OLDEST version of the Operating System that you intend to support. Upward compatability is quite common, DOWNWARD compatability is not.
0
 
LVL 17

Expert Comment

by:inthedark
ID: 6948387
You can develop on XP.  I created a system which became widely distributed.  I had so many problems I re-wrote setup1 in the end.  After a chat with Microsoft Support I was advised as follows:

Install the oldest copy of Windows 95 that you can find  and build your package on that system.  Otherwise
when you build your package some of the Windows componants are included with the package.  If setup.exe
finds that the install has a new version of these Windows componanats the setup will upgrade Windows
and ask for the system to be re-booted.

Once you have your package from an old version of Windows 95 you can copy the critical files and tell the PD Wizard to default to use these files instead of the ones from  windows\system or \winnt\system32.

You can also get these files without having to install Windows 95 on a system as you can hook out the required DLL's required from the CAB files.

This may also help:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;q178354

In you PDWizard folder there is a file:

VB6DEP.INI:

It looks like this:

[VB Runtime]
Dest=$(WinSysPathSysFile)
Uses1=MSVBVM60.dll
Uses2=OleAut32.dll
Uses3=OlePro32.dll
Uses4=AsycFilt.dll
Uses5=StdOle2.tlb
Uses6=ComCat.dll
CABFileName=VBRun60.cab
CABDefaultURL=http://activex.microsoft.com/controls/vb6
CABRunFile=VBRun60.exe

I think you can hard code the source like:

Uses1=MSVBVM60.dll
Uses2=c:\old95stuff\OleAut32.dll
Uses3=c:\old95stuff\OlePro32.dll
Uses4=c:\old95stuff\AsycFilt.dll ' if these files don't exist on a clean Win 95 install ignore them and use the defaults.
Uses5=c:\old95stuff\StdOle2.tlb
Uses6=c:\old95stuff\ComCat.dll


Find an old copy of Windows 95 and get the files user2-6 from the windows 95 cab files. Or the Windows\system from a pc running Win 95.


You can also add to the following section:

; These are files which will be ignored when referenced by a VB project.
[Do Not Redistribute]
shdocvw.dll=
mshtml.dll=
mshtml.tlb=
asp.dll=
asp.tlb=
msdatsrc.tlb=
vb6ext.olb=
msaddndr.tlb=
msaddndr.dll=
mso97.dll=
mso97rt.dll=
DEExt.tlb=

There are also some bugs in setup1.exe I will post some fixes if you like:

setup1.exe tips:

1)  Make sure you have autoincrement version set in the project Make section.
2)  Change the version of Major 99.99.9900 becuase of a bug in setup.exe if it finds some other programmer's
version of setup1 in \windows or \winnt your setup1.exe won't be loaded - so at least you version might
look newer.

Also there is a bug where is MS office is installed on a system through a network this makes setup1.exe
screw up.

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 18

Expert Comment

by:mdougan
ID: 6948601
UncleMatt has the right answer.  Whomever created the install program for this app probably tried to include the ADO files separately, but technically, you are only supposed to distribute the ADO files via the MDAC_TYP.EXE file that is found in the Redist directory of the package and deployment wizard.  Note, if you've upgraded to a later version of MDAC than what comes with the standard install of VB (2.0 I think), then you need to make sure to replace the version of MDAC_TYP.EXE in this directory with the new version, so that the package and deployment wizard will include the right version of MDAC when it builds the install.

I think that Microsoft does this so that each client that gets the MDAC has to agree to the shrinkwrap license for MDAC.
0
 
LVL 17

Expert Comment

by:inthedark
ID: 6949015
mdougan you're probably right. I haven't produced any non-server apps that use ADO yet.  I did some timings between ADO & DAO. ADO can perform better than DAO but not often. I use ADO if the back-end server is SQL Server but these types of apps. are not the sort that are widely distributed.
0
 
LVL 18

Expert Comment

by:mdougan
ID: 6949544
I'm a big fan of DAO, I've built many large applications that continue to run well under it.  However, ADO is growing on me.  It is very big, and I hate the idea of having to distribute 7mb of MDAC just to get my 1.5mb app to run, but, I believe that Microsoft is installing MDAC already on it's later operating systems, so, it might not be necessary to distribute eventually.

As a side note, if I don't really have too much need for the database, I use XML files instead.  I've written a wrapper for the Microsoft Dom object that makes it work something like a recordset, so, you can load an XML document, search it or read through it sequentially.  Saves you from having to distribute any of the database components... just the XML parser.
0
 
LVL 17

Expert Comment

by:inthedark
ID: 6949598
What size files can Dom handle before you notice speed problems?
0
 
LVL 18

Expert Comment

by:mdougan
ID: 6950270
Most of the files I've been using lately with XML have been very small.  But on other projects, we'd loaded some good sized recordsets into a DOM and loading was surprisingly fast.  I'd imagine searching through a large sized dom would be pretty slow though.
0
 

Author Comment

by:JParente
ID: 6950572
Installing the mdac 2.61 simply solved my problem.
thanks to all the others that contributed to my knowledgment with their greatest coments once i'me new in this vb stuff.

Many thanks to all,
Jorge
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
backup program with robocopy 6 71
VBA: Insert New column with specific format type 12 54
checkbox to hide entire section 10 60
adding "ungroup sheets" to existing vbs code 5 54
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

756 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