El siguiente es un texto sacado de una página en inglés en donde se trata el problema de Access con Installshield que te puede solucionar tu problema. Espero que te sirva Atte. Miguel Lucero -------------------------------------------------------------------------------- Important information for users of Installshield Express for Delphi 4 The following was sourced, with thanks, from Peter Bradley petebrad@netspace.net.au http://www.netspace.net.au/~petebrad/ {Classic Italian Motorcycles - nothing to do with Delphi} NOTE: Peter has kindly provided the dependency files referred to in his discourse. To download them, click here. I have tried them and they WILL let you install the DAO with ISX for Delphi! It goes without saying that should you download and use these files you do so entirely at your own risk! Update January 15th 1999 I discovered one more small error in my ISX dependancy files.Comments must be on a line by themselves and because of a missed or deleted return one line is incorrect. I have corrected the attached as follows. ;; Copied from [BDE Support] by PB Uses17=IDBAT32.DLL is correct it was on the same line with the comment after. Peter Bradley -petebrad@netspace.net.au Update December 16, 1998: I had some problems with an ‘EmptyTable’ procedure and discovered that the IDBAT32.DLL is also required in the [BDE core subset]. The line has been added to the SWDEPEND.INI file and the last line re-numbered. My application now installs perfectly on Windows 95 and 98 as well as installing on a network drive for shared use. Update November 26, 1998: The document below was prepared in September 1998. Since then there has been one small modification, the reinstatement of a commented out line and the required renumbering. (swdepend.ini, at the end of the [BDE Core Subset], reinstate and renumber the the line as follows - Uses18=OTHER IDAPI FILES). This is required to load the IDAPINST.DLL which is required to correctly merge the idapi configuration file which hold alias information. Also, as at 26 November 1998, Inprise have new versions of the ini files available for downloading on their Web Site. Unfortunately they are still incorrect in many sections, do not have DAO/Jet support, and will not work correctly with a partial install of the BDE. The version of Installshield Express (ISX) that is distributed with Delphi 4 is not the same as the retail version of ISX. Installshield refer to this version as a ‘Custom’ version that is distributed "free" with Delphi 4, as such it is not entitled to any upgrades or maintenance releases even if problems are found with the program. As far as I am aware Installshield are currently offering a discount of $50 on the full version. That is US$245 less$50 plus $65 for international shipping = US$260 or Australian $450. This means the installation program can cost more than twice the cost of Delphi if you purchased Delphi 4 Standard! There are a number of issues which users of ISX for Delphi 4 should be aware of. The program differs from ISX (retail) in several important areas. Most importantly there is no provision for calling another program (such as the Windows upgrade 40COMUPD.EXE). In the full version of ISX these facilities are in the Express Extensions Section. You do not get the facility to modify system configuration files such as the Autoexec.bat, Config.sys and various ini files. If you are writing a program using MS Access files and DAO/Jet there are no Installshield Objects that can be used to install a number of critical files. If you are using Delphi Standard or Professional you will get the confusing inclusion of DATAPUMP files when you install the BDE Object. These files may be deleted from the Goups and Files list as they are only used with the Enterprise/ClientServer Edition of Delphi. In the current version of InstallShield you must load a partial install of BDE in the target program directory. Only a full install will be placed in the drive:\Program Files\Common Files\Borland Shared\BDE directory. The InstallShield Express Custom Edition For Delphi4 incorrectly nominates \Borland\Common Files\BDE as the directory for BDE it should be \Common Files\Borland Shared\BDE If you are using an Access Database but BDE keeps trying to load the wrong driver it be because InstallShield gets its driver information from the System Registry. For some reason BDE does not always update the registry with the correct driver information. Some of these issues can be resolved by a careful editing of the isdepend.ini and swdepend.ini files which may be found in the C:\Program Files\installshield\InstallShield Express Custom Edition For Delphi4 folder. Obviously you modify these files at your own risk, I take no responsibility for the results and I am sure Installshield would disown any problems that may occur. The main trick in building the Groups and Files was working out what to include and the order in which they had to install. This is critical!!! If you install the DLLs in the wrong order some of the self-registering types will not self register as they are dependent on others. In the end I put DAO after everything else. The following are some work arounds and fixes I have made for my system. For Win 95 the System needs upgrading to the latest versions of the following files: ASYCFILT.DLL {I’m not sure about this one but my system seems to need it} OLEAUT32.DLL OLEPRO32.DLL STDOLE2.TLB COMCTL32.DLL {see the note on 40COMUPD.EXE below} You can install these files using ISX but there is still a problem which causes later DLLs to fail to register. Unlike the VB 5 install routine and the retail version of ISX, ISX for Delphi 4 can not be made to re-boot immediately after installing new system files. (That is before the remaining files are installed) Consequently some DLLs and OCXs fail to self register!! but they do when you run the install a second time. I now have two sets of install disks. One called ‘Install me first for Windows 95’ and the other for the program. Remember the order in which some files are installed may be critical. If you have a problem with something failing to register try moving it down the list. Note on the use of 40COMUPD.EXE from Microsoft. Some components require the installation of the latest version of COMCTL32.DLL and some other Windows system DLLs. Under the licence agreement with Microsoft they will allow you to distribute the updated version of COMCTL32.DLL provided that it is done using 40COMUPD.EXE. This file is on the Delphi 4 CD in the \info\Updates folder. (Other files are in the \Runimage\Delphi40\Windows\System32 folder) Unfortunately I could not get it to work with the first release of Windows 95, I got a message saying that the version was not valid for this file. I got around this problem on my own machine by writing a special ISX routine that only installed the Widows 95 upgrade files in the System folder and then re-booted. I called this "Install me first for Widows 95" I then ran the normal install for my application. This would be contrary to Microsoft’s licence agreement to distribute the update to clients and so I can not recommend it. Another way of installing the update would be to install Internet Explorer 4. You can modify SWDEPEND.INI and ISDEPEND.INI to include an Express Object for Microsoft DAO/Jet in the list of Installshield Objects for Delphi (Note this is for DAO 3.5 and Jet 3.5). Please also note that you should also select ODBC Driver checkbox in BDE Driver Types. Before you start make a back up copy of the files in case you make a mistake. Add the following lines to the isdepend.ini file At the end of the [Options] section ;; entered by PB Option12=Microsoft Jet/DAO 3.5 ;;IDs 250, 251, & 252 seem to be safe and not conflict with anything else Microsoft Jet/DAO 3.5ID=250 Microsoft Jet/DAO 3.5ID2=251 Note: The ID numbers relate to the check box selection and control both the check box and correct removal of files from the Groups/Files list if you unselect the check box. After the existing comment lines ; The following sections tell what other sections are referenced by each ; section listed above ;; entered by PB [Microsoft Jet/DAO 3.5] Name=MS Jet System Files Dest= ReferTo1=Jet Support Name2=DAO Files Dest2=\Microsoft Shared\DAO ReferTo2=DAO Support The SWDEPEND.INI file then needs to be modified to tell ISX what files to install. Insert the following lines. ;;inserted by PB [Jet Support] Src= Uses1=MSVCRT40.DLL Uses2=VBAJET32.DLL Uses3=MSJET35.DLL Uses4=MSJTER35.DLL Uses5=VBAR332.DLL Uses6=IMPLODE.DLL Uses7=ODBC32.DLL Uses8=MSJINT35.DLL Uses9=ODBCINT.DLL [DAO Support] Src= SrcSub=MICROSOFT SHARED\DAO Uses1=DAO35.AW Uses2=DAO35.CNT Uses3=DAO35.FTS Uses4=DAO35.HLP Uses5=DAO2535.TLB Uses6=DAO350.DLL I also modified the [BDE Core Subset] as follows by moving a number of entries from the [BDE Support] Section. Because [BDE Support] calls the [BDE Core Subset] any files moved do not alter any other function. [BDE Core Subset] Src=HKEY_LOCAL_MACHINE\SOFTWARE\BORLAND\Database Engine\DLLPATH Uses1=BANTAM.DLL Uses2=BLW32.DLL Uses3=USA.BTL Uses4=EUROPE.BTL Uses5=CEEUROPE.BTL Uses6=JAPAN.BTL Uses7=OTHER.BTL Uses8=FAREAST.BTL Uses9=CHARSET.CVB ;;added by PB for use with MS Access 97 driver change for Access 95 ;;Must also select ODBC Driver checkbox in BDE Driver Types Uses10=IDSQL32.DLL Uses11=IDDA3532.DLL ;;From this line down originally numbered 1-6 changed by PB Uses12=IDAPI32.DLL Uses13=IDR20009.DLL Uses14=BLW32.DLL Uses15=BDEADMIN.EXE Uses16=BDEADMIN.HLP Uses16=BDEADMIN.CNT Uses17=IDBAT32.DLL ;; Copied from [BDE Support] by PB ;; May remove the next 3 for Professional version. Keep for Enterprise/ClientServer ;;Uses7=DATAPUMP.EXE ;;Uses8=DATAPUMP.HLP ;;Uses9=DATAPUMP.CNT ;;Uses10=OTHER BDE ADMIN SW Test June 5,1998 ;; Was commented out but reinstated and renumbered by PB Uses18=OTHER IDAPI FILES Now you can see how the InstallShield ini files can be modified to support your own Objects and other options such as Crystal Report Writer. The InstallShield Express SWDEPEND.INI file includes a number of parameters that only apply to the Enterprise/ClientServer Edition or the Professional version. The lines that may cause a problem usually have comments above them and they may be commented out for your particular installation if not required. Before you start make a back up copy of the file in case you make a mistake. Study the file carefully and comment out any lines that are giving you a problem. Below is an example with the lines referring to DATAPUMP commented out. ;; May remove the next 3 for Professional version. Keep for Enterprise/ClientServer ;; Uses8=OTHER IDAPI FILES ;;Uses7=DATAPUMP.EXE ;;Uses8=DATAPUMP.HLP ;;Uses9=DATAPUMP.CNT The ; indicates a comment line. The location of the Common BDE files can be corrected in the ISDEPEND.INI as shown below. The lines below the original Dest, which I have commented out, are correct for Delphi 4. [BDE (Borland Database Engine)] Name=BDE/IDAPI Files ;;Dest=\Borland\Common Files\BDE ;;Inserted by PB Dest=\Common Files\Borland Shared\BDE ReferTo1=BDE Support Name2=BDE/IDAPI CNF File ;;Dest2=\Borland\Common Files\BDE ;;Inserted by PB Dest2=\Common Files\Borland Shared\BDE ReferTo2=BDE Support3 [SQL-Links] Name=BDE/IDAPI Files ;;Dest=\Borland\Common Files\BDE ;;Inserted by PB Dest=\Common Files\Borland Shared\BDE ReferTo1=SQL Link Support Note: If you wish to do a partial install with all BDE files in the folder \Borland\Common Files\BDE then you must chose "Full BDE Installation" and then remove unwanted files in the "Groups and Files" section. This is because ISX will always specify the as the DLLPATH in the System Registry when you perform a Partial Installation of the BDE. It may be possible to get around this by manually specifying the Key - HKEY_LOCAL_MACHINE\Software\Borland\Database Engine , Value Name - DLLPATH , and Value Data - \Common Files\Borland Shared\BDE. The following notes refer to the installation of the correct MS Access database driver DLL in the BDE configuration. The following information is in the InstallShield Help files. "If you are installing 32-bit BDE, the drivers that appear in this field are read directly from the source machine’s registry. Your system’s BDE drivers should be included as subkeys under the following path in your registry: HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\Drivers If a BDE driver on your system is not present under this path, then the driver has not been installed correctly. You must reinstall this driver on your machine." Using Regedit you may view and change the information in the Registry. This must be done with extreme care as an incorrect entry in the wrong place could cause some problems, however if you find the key that holds the incorrect driver DLL you can not go far wrong if you edit that key to the correct DLL. For some reason BDE may be calling the correct driver on your development system but the Directory may not have been altered from the default driver. An example of this may be that the key HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\Settings\DRIVERS\MSACCESS\INIT holds the entry DLL32 "IDDAO32.DLL" for Access 95 files instead "IDDA3532.DLL" for Access 97. Double click on the DLL32 value name and enter the correct DLL value data. When you exit Regedit the value will be saved and the correct driver DLL will be entered in the target system’s registry by InstallShield. If all else fails place the following key in the InstallShield "Make registry Changes" section - HKEY_LOCAL_MACHINE\Software\Borland\Database Engine\Settings\DRIVERS\MSACCESS\INIT - and add the Value Name - DLL32 – and the Value Data - IDDA3532.DLL. Other Comments Delphi does not log the files that are called when the program is compiled or run, it is very difficult for the novice to ascertain exactly what files are needed. This is quite strange and I think something of an oversight because within Delphi you can actually view the modules called under View/Debug Windows/Modules (Ctrl Alt M) but you can not print or save this information. There are two ways you can find what files are being called. Firstly when you compile your application view the Modules window under View/Debug Windows/Modules (Ctrl Alt M) in the Delphi 4 menu. You can then copy a list of the modules called and the path for each module. The other alternative is to compile the program then close all other windows and open the Windows System utility MSINFO32.EXE that may be in your Windows 95/98 Start Menu under Start/Programs/Accessories/System Tools/System Information. View the section under both 16 bit and 32 bit Modules Loaded, take note of the last modules in each list, run your application then click the refresh button (!). The modules used by your application will then be added at the end of the list. This list may be exported to a text file, you can then load it into MS Excel, cut out the huge amount you have no interest in and save or print the remainder. Note some of the files loaded may be standard windows DLLs and there is no need to include these on your deployment disk. The above is merely a reflection of the problems I had and the solutions I ultimately found. I am sure that there are many other questions and several different answers. I offer my answers after 30 hours of absolute frustration spent in trying to achieve what should have been a ten minute job. I am sure others who have had the same experience must have given up in despair and I offer this in the hope that it may save someone a lot of heartache. Peter Bradley petebrad@netspace.net.au http://www.netspace.net.au/~petebrad/ {Classic Italian Motorcycles - nothing to do with Delphi} These pages are sponsored by Final Filer Software Miguel Lucero miguel_sandro@yahoo.com