none
Could not find installable ISAM

    Question

  • I used the following code to try to read data from excel file in an ASP.NET web application, but failed and got the error message "Could not find installable ISAM" when the statement objConn.Open() was excuted.

    string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\StbBook.xlsx;Extended Properties=Excel 8.0;";
    OleDbConnection objConn = new OleDbConnection(connString);
    objConn.Open(); //Error was thrown at this point.

    I used VS2010.net and excel2010.

    Need I do any configuration in ODBC Data Source Administrator or anywhere else?

    I will very appreciate for your help.

    Thursday, September 02, 2010 6:47 AM

Answers

All replies

  • Jet OLEDB does not support Excel 2007 and Excel 2010 file formats. You need to install ACE OLEDB provider for it. You can find download for it here

    http://www.microsoft.com/downloads/details.aspx?FamilyID=c06b8369-60dd-4b64-a44b-84b371ede16d&displayLang=en


    Val Mazur (MVP) http://www.xporttools.net
    • Marked as answer by Roahn Luo Monday, September 06, 2010 2:07 AM
    Thursday, September 02, 2010 10:12 AM
    Moderator
  • In addition to what Val mentioned, below are connection string examples for Excel 2007 or higher:

    http://www.connectionstrings.com/excel-2007

     


    Paul ~~~~ Microsoft MVP (Visual Basic)
    Thursday, September 02, 2010 2:39 PM
  • I have installed the latest build of AccessDatabaseEngine_X64.exe because that the local machine is a 64bit OS(Win7).

    Now, I got the error message "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine" when objConn.Open() was excueted.

    I googled it and changed "Active solution platform" to x86 which can't solve this issue.

    Thanks,

    Friday, September 03, 2010 8:26 AM
  • Can you post the connection string you are using right now?
    Val Mazur (MVP) http://www.xporttools.net
    Friday, September 03, 2010 10:16 AM
    Moderator
  • If you installed the 64-bit version then the Platform should be set to Any CPU.


    Paul ~~~~ Microsoft MVP (Visual Basic)
    • Marked as answer by Roahn Luo Monday, September 06, 2010 2:07 AM
    Friday, September 03, 2010 7:57 PM
  • The connection string I am using is as follows.

    string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= c:\StbBook.xlsx;Extended Properties=Excel 12.0 Xml;HDR=YES";

    and I have changed the platform setup to "any cpu".

    I still got the error message "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine" when the objConn.Open() was excueted.

    BTW, objConn is instantiated by the following code.

    OleDbConnection objConn = new OleDbConnection(connString)

    Any help will be very appreciated.

     

    Monday, September 06, 2010 7:50 AM
  • You need to put all the properties that follow Extended Properties into additional double quotes, otherwise connection string is not valid, something like

    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= c:\StbBook.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES""


    Val Mazur (MVP) http://www.xporttools.net
    Monday, September 06, 2010 1:35 PM
    Moderator
  • I have changed the connection string per your suggestion.

    string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= c:\StbBook.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES""";
         

    But I still got the error message "The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine" when the objConn.Open() was excueted.

    I want to mention it that the OS is 64bit, Win7. and after installing AccessDatabaseEngine_X64.exe, I didn't do any other configuration.

    so, did I miss any configuration?

    Thanks,

    Tuesday, September 07, 2010 1:46 AM
  • No, it should work fine after that unless installation failed for some reason. Are you sure that application is set to AnyCPU? If you only need to read data you can also try to use Excel reader from my web site. It is .NET Managed provider for Excel and works in both 64- and 32-bit modes automatically.
    Val Mazur (MVP) http://www.xporttools.net
    Tuesday, September 07, 2010 10:10 AM
    Moderator
  • This is clearly one of those questions where no one at MS really knows or there are many possible problems, each with its own solution. I have the exact same application, one running in production and one in dev and one gives me this error and the other doesn't. Same connection string in both. This is a configuration or server problem of some kind, I think. It would help if someone knowledgeable explained a) what an ISAM is; and b) if one can't be found, where is the system looking for it and where can one obtain an installable ISAM and how would it be installed?


    G. Steele at Sedgwick

    Friday, September 07, 2012 8:59 PM
  • After I installed Access Database Engine 2010, it gave me  following error.

    The 'Microsoft.ACE.OleDB.12.0' provider is not registered on the local machine. 


    Merin

    Monday, September 24, 2012 5:02 PM
  • OK. I figured out the issue.

    I installed Access Databaes 2010 64-bit as I have 64-bit version of Office 2010 installed. I changed the target platform of the project to Any CPU. 

    I also realized that I did some mistake in connection string. Following is the correct connection string.

    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|filename.xlsx;Extended Properties=Excel 12.0"

    Then I was able to successfully open the connection. 

    Yahooo... . :))


    Merin


    Monday, September 24, 2012 5:38 PM