错误:“找不到可安装ISAM”
-
21-08-2019 - |
题
我已经写了一些VBA代码在Excel工作簿在桌面上相同的目录检索从Access数据库中的数据。它的工作原理在我的机器,并在运行Windows XP的其他几台机器上很好,但是当我们测试的一个Vista的机器上,我们遇到了以下错误:
找不到可安装ISAM
我已经做了一堆网上搜索的,但似乎无法找到一个具体的答案。连接字符串似乎是罚款,正如我所说,它可以在几台机器。
有没有人有任何想法可能是什么造成的?我的连接字符串如下:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\ptdb\Program Tracking Database.mdb;
由于
没有正确的解决方案
其他提示
围绕Extended Properties
地点单引号:
OleDbConnection oconn =
new OleDbConnection(
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';");
试试,它确实有效。
尝试把周围的数据源单引号:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb';
在问题常常是白色空间里面确实有意到解析器。
如果你有其他属性(例如,扩展属性),它们的值也可以具有被封闭在单引号:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source='D:\ptdb\Program Tracking Database.mdb'; Extended Properties='Excel 8.0;HDR=YES;IMEX=1;';
您同样可以使用双引号;然而,你可能要逃避他们,我觉得这比用单打多的疼痛算法的的。
你检查这 http://support.microsoft.com/kb/209805 ?特别是,你是否有Msrd3x40.dll。
您可能也想检查是否安装了最新版本的Jet:的http://支持。 microsoft.com/kb/239114
只需使用Jet OLEDB:您的连接的字符串中。 它解决了我。
一个例子如下:
"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=E:\Database.mdb;Jet OLEDB:Database Password=b10w"
我刚刚遇到了一个非常类似的问题。
和你一样,我的连接字符串出现正确的 - 事实上,完全相同的连接字符串是在其他情况下工作。
。在问题被证明是一个缺乏资源。 19个超时20的,我会看到“找不到可安装ISAM”,但一次或两次(没有任何代码改变的话),这将产生“内存”代替。
重新启动机器“解决”这个问题(现在...?)。这件事发生在Windows XP中使用Jet版本4.0.9505.0。
我用这个更新一个excel 12 xlsx档案
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand();
MyConnection = new System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='D:\\Programming\\Spreadsheet-Current.xlsx';Extended Properties='Excel 12.0;HDR=YES;';");
MyConnection.Open();
myCommand.Connection = MyConnection;
string sql = "Update [ArticlesV2$] set [ID]='Test' where [ActualPageId]=114";//
myCommand.CommandText = sql;
myCommand.ExecuteNonQuery();
MyConnection.Close();
使用此连接字符串强>
string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + strFileName + ";" + "Extended Properties=" + "\"" + "Excel 12.0;HDR=YES;" + "\"";
此问题是由于机器不能找到正确的ISAM(索引顺序驱动方法)注册的访问的需要。
这可能是因为机器没有安装MSACeesss?我会确保你拥有最新版本的Jet,如果它仍然无法正常工作,找到其他机器的一个文件Msrd3x40.dll,地方将它复制到Vista的机器和呼叫REGSVR32它(在管理员模式下)应该整理出来给你。
使用下面的连接字符串从XLSX文件中读取:
的字符串的ConnectionString =“提供者= Microsoft.ACE.OLEDB.12.0;数据 源= “+ <> +”;扩展 属性= Excel的8.0;“;