none
System.Data.OleDb.OleDbException: Could not find installable ISAM. RRS feed

  • Question

  • I have an application that connects to an Access 2003 database. The application runs fine on the machine it was compiled on and other xp computers (not the machine the database resides on). I need it to run on all the new machines my company purchases, which hasn’t been a problem until recently. When I try and run the application on the latest batch of machines, I receive the System.Data.OleDb.OleDbException: Could not find installable ISAM. error. 

     

    I found this article and tried manually registering the dll's listed with no luck. Im not sure what else to look for.

    http://support.microsoft.com/default.aspx?scid=kb;en-us;283881

     

    Here is my connection String:

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source="F:\Intranet\Employees\ss\CompDB.mdb"

     

    Here is the Exception String I receive when the app trys to connect to the database.

    ************** Exception Text **************
    System.Data.OleDb.OleDbException: Could not find installable ISAM.
       at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
       at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
       at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
       at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
       at CompTracker.InitialConfig1.InitialConfig_Load(Object sender, EventArgs e)
       at System.Windows.Forms.Form.OnLoad(EventArgs e)
       at System.Windows.Forms.Form.OnCreateControl()
       at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       at System.Windows.Forms.Control.CreateControl()
       at System.Windows.Forms.Control.WmShowWindow(Message& m)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       at System.Windows.Forms.ContainerControl.WndProc(Message& m)
       at System.Windows.Forms.Form.WmShowWindow(Message& m)
       at System.Windows.Forms.Form.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

     

    Any help would be greatly appreciated.

     

    Monday, July 23, 2007 4:30 PM

Answers

All replies


  • There shouldn't be any double or single quotes around the path to the database file. Could this be the source of the error?
    Monday, July 23, 2007 4:59 PM
  • I tested with the double quotes, it worked ok for me.

    Yes so I suspect you need to install Jet 4.0 on the machine.

     

     

    You could try installing this ->

     

    Jet 4.0 SP8

    http://support.microsoft.com/kb/829558

     

    Might fix you up.

    Monday, July 23, 2007 5:30 PM
  • I tried removing the quotes from the connection string and I recieved the same error.

     

    I have also installed all available updates from microsoft including jet 4.0.

    This didnt seem to solve my problem .

     

    Hopefully ill come across the answer soon. Thanks for the tips so far.

    Wednesday, July 25, 2007 6:30 PM
  • I think I found the source of the problem. Two of the tables in the database were linked to sharepoint lists. I replaced the tables that were linked to a sharepoint site with standard access tables. I can now read and write to the tables just fine on all machines.

     

    Is there anything I can download that will allow all the other computers I am using to read and write to linked to sharepoint site?

    Friday, July 27, 2007 1:33 PM
  •  

    You probably need to install the Office 2007 data access components, which has support for SharePoint Lists.

    http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en

     

     

    • Proposed as answer by Air-Thanida Monday, February 6, 2012 3:49 AM
    Monday, July 30, 2007 1:11 PM
  • I installed the Office 2007 data access from the link. Unfortunately, I am still getting the same ISAM error.

     

    Monday, July 30, 2007 3:07 PM
  • I have the exact problem your haveing if you find the anser please post it.

    and if i find solution ill post it here

     

    Wednesday, August 1, 2007 5:54 PM
  • I'll try to debug this one and see what happens, will post back shortly.

     

    Wednesday, August 1, 2007 6:18 PM
  • Is there another way to access the data in a sharepoint list other than linking to the list in access?

    Thanks for the Help

    Wednesday, August 1, 2007 6:27 PM
  • 1. Installed Office 2007.

    2. Ran Microsoft Access 2007.  My how Access has changed! I can't find anything anymore!

    3. Created new blank database c:\Database1.accdb.

    4. External Data | Sharepoint List , choose "Link" option, pointed to some SharePoint site.

    5. Tested my link to be sure it worked, cool!  It works!  I see 2 records in my table.  Renamed my table SharePointTable so I could remember it later.

    6. Closed and saved my database.

     

    Next I created a simple C# windows application in VS.NET 2005, created a button to click, added button click event:

     

     

    private void button42_Click(object sender, EventArgs e)

    {

    OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Database1.accdb;");

    OleDbDataAdapter da = new OleDbDataAdapter("select * from SharePointTable", conn);

    DataTable dt = new DataTable();

    da.Fill(dt);

    DataSet ds = new DataSet();

    ds.Tables.Add(dt);

    MessageBox.Show(ds.GetXml());

    }

     

    Code works!  I can see the result from the table.  Note I even ran this with the database on another machine and it worked.

     

    Wednesday, August 1, 2007 6:32 PM
  • Did the other computer have access 2007 installed on it to?

    I have web page with on data list, one dropdown and two text boxes and it works fin in vs.net 2005 till I copy it to my varietal director and try and access it from a web page

     

     

    Wednesday, August 1, 2007 7:16 PM
  • It does not matter what the other computer has installed on it.  It has to be installed on the computer where the code runs.  So you need Access 2007 installed on the machine where the code runs to fetch the data.

    Wednesday, August 1, 2007 8:25 PM
  • Sorry Still having trouble

    I have install 2007 on web server and still get same error so I started over

    Made new database and created one table with two fields made new website in VS 2005 dropped data connection on page with data view saved and ran works (data base is in the app_data folder) used the copy command in VS 2005 to the virtual Dir on the web server. Opened explorer to the URL page runs grate no errors.

    Go back to same database link one SharePoint list but the link process brings in the table I need and  a user table.

    Go back to VS 2005 change the table the data view is connect to and run it work grate in VS 2005 Use the copy command and copy back to the Virtual Dir on the web server. Open explorer to the URL and get the error from the start of this post.

    So it looks like it’s the linked SharePoint table that is having the problem so the question is what is causing the problem with the SharePoint table?

     

    Thursday, August 2, 2007 3:54 AM
  • When you are dealing with running things inside web sites there are all sorts of variables:

     

    1. What is the vdir configured to run as security wise?  There are a ton of security settings here in asp.net config files and IIS.

    2. Is the web client local or remote?

    3. Is the SharePoint web page local or remote?

    4. Is the web server itself running SharePoint, SharePoint can also layer on security.

     

    It makes my head hurt with all the complexity, I wish it could be much simpler.  So lets back up to the basics here.

     

    Sounds like everything works on the same machine until you dump it into ASP.NET.  So I suspect security issue.  The running thread in ASP.NET simply does not have security rights to load the provider.  Or it could be basic interference by SharePoint, see this KB:

     

    http://support.microsoft.com/kb/926008

     

    What I would do is post to the SharePoint forum (not sure wherand ask them how to do what you want to do, they probably have some more efficient way of getting the data.

     

    They have a blog here:

     

    http://blogs.msdn.com/sharepoint/archive/2007/07/25/scaling-large-lists.aspx

     

    Sounds like it might be worth a read, might give you some ideas on how to proceed.

    Thursday, August 2, 2007 5:10 AM
  •  

    1.       Vdir permissions has everyone set to full control, home directory tab has script source access and read, Directory Security tab authentication is set to anonymous access user iusr_jpfs01, authenticated access is set to integrated windows authentication

    2.       Same network

    3.       4. Yes the sever is running SharePoint and IIS

    Yes it is making my head hurt this should be simple to do and I think your right it is problem a security problem  with SharePoint because these are the only tables I can’t access

    Thanks for the help I will check out the two links

    Thursday, August 2, 2007 12:24 PM
  • Did anybody work out the root of this problem? I'm running into the same error. My situation occurs without IIS involved - only using ADO.NET and WinForms.

    1) Had a working Access 2003 database with a linked Sharepoint table (on a network drive).
    2) Was able to select, delete & insert records with no problem from a WinForms app developed in VS2005 using Microsoft.Jet.OLEDB.4.0 provider.
    3) Installed Office 2007 (kept 2003 on machine).
    4) Now get the "could not find installable ISAM".
    5) Tried changing to Microsoft.ACE.OLEDB.12.0 provider and it partly works (still figuring out why not completely), but this is not the preferred solution - most users of the app only have Office 2003.

    Does anyone have any ideas about this?

    Monday, August 24, 2009 5:03 AM
  • Hello, 

    I have the same problem. I am using ADO.NET and Winforms as well. 

     

    1) I have Office 2007 installed on my machine and Visual Studio 2008. 

    2) Sharepoint list is linked to Access Database.

    3) I have created winform with Microsoft.ACE.OLEDB.12.0 provider (with Jet I have an error). 

    4) I have build the solution and try to distrubute. On machines where Office 2003 is installed it doesn't work. Sometimes it doesn't work on these machines (the same error occurs) when I use JET provider to build the solution. 

    Is there a solution to have the SharePoint list linked to the access database and one provider used on application? (they can be two versions for 2003 users and 2007 but they have to work. Now it doesnt)

     

    Please, does anyone have any ideas?

    Thursday, June 17, 2010 9:13 PM
  • Most likely it does not work in target environment because you did not install data access component for Office. By-default non of the Jet or ACE components are installed with operating system and you need to install them separately. Here are the links to installations for both of them

    http://www.microsoft.com/downloads/en/results.aspx?freetext=jet+4&displaylang=en&stype=s_basic

    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7554f536-8c28-4598-9b72-ef94e038c891

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

     


    Val Mazur (MVP) http://www.xporttools.net
    Friday, June 18, 2010 10:36 AM
    Moderator
  • Hi use the below connection string your program will work for sure

    Hi Guru's,

    Here i want to explain one thing. you can use below two connections strings to read excle file

    1)

    string

     connString = "Provider=Microsoft.Jet.OleDb.4.0; data source="

     + inputFilename + ";Extended Properties=Excel 8.0;"

    ;




     

    above connString works fine when you want to read all the data from excel sheet, but the problem with the above conn string is if you have empty rows at the end of excel it will read empty rows as well

    but if you don't want to read empty rows at the end of the excel sheet use below one

    2)



     connString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source="

     + filePath + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\""
    ;

    this works fine, you can use directly


     

     

    Thanx :-)

    Venkat

    Thursday, December 30, 2010 1:45 PM