在 excel 2007 vba 中找不到可安装的 ISAM
Posted
技术标签:
【中文标题】在 excel 2007 vba 中找不到可安装的 ISAM【英文标题】:Could not find installable ISAM in excel 2007 vba 【发布时间】:2013-08-02 09:17:45 【问题描述】:我想尝试使用 ado 连接和 vba 将 excel 连接到 excel。但问题是它给出了一个错误,找不到可安装的 ISAM。我试图查看其他解决方案,但同样的问题将返回。可能有一个我缺少的activex控件吗?这是我的代码
Dim cN As ADODB.Connection '* Connection String
Dim RS As ADODB.Recordset '* Record Set
Dim sQuery As String '* Query String
Dim i1 As Long
Dim lMaxRow As Long '* Last Row in the Sheet
Dim iRevCol As Integer '*
Dim i3 As Integer
Set cN = New ADODB.Connection
cN.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\PC\Desktop\Excel Programming\PlayerDatabase.xlsm;Readonly=False;Extended Properties=Excel 12.0;;HDR=yes;Persist Security Info=False"
cN.ConnectionTimeout = 40
cN.Open
Set RS = New ADODB.Recordset
lMaxRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
sQuery = "Select * From [Player$]"
RS.ActiveConnection = cN
RS.Source = sQuery
RS.Open
If RS.EOF = True And RS.BOF = True Then
MsgBox ("End of File")
End If
If RS.State <> adStateClosed Then
RS.Close
End If
If Not RS Is Nothing Then Set RS = Nothing
If Not cN Is Nothing Then Set cN = Nothing
更新:
现在我把我的连接字符串改成这个
cN.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\PC\Desktop\Excel Programming\PlayerDatabase.xlsm;Extended Properties='Excel 12.0 Macro;HDR=YES'"
但它给了我错误无法更新。 数据库或对象是只读的。
当我把 readonly=false
cN.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\PC\Desktop\Excel Programming\PlayerDatabase.xlsm;ReadOnly=false;Extended Properties='Excel 12.0 Macro;HDR=YES'"
它会给出一个错误,因为找不到可安装的 ISAM :(
【问题讨论】:
您的ConnectionString
似乎被夸大了。转到ConnectionStrings.Com 并检查适合您使用的环境和您从中获取数据的文件的正确语法。
在我的更新问题中,我将该连接字符串带到了您给我的网站。
【参考方案1】:
我不知道您从中检索数据的XLSM
文件中的内容,但您的连接字符串应该尽可能简单。这对我有用(但我没有检查只读参数):
"Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Users\Dane\BazaDanych.xlsm;" & _
"Extended Properties=Excel 12.0 Macro"
【讨论】:
实际上我的 xlsm 数据库仍然是空的.. 只是想检查使用 ado 的连接是否成功...你知道我怎样才能让 datase.xlsm 写入/读取吗? 你有什么可以下载的例子或 wokbook 吗? 我不确定我是否得到了您真正需要的东西...要检查 ADO 是否有效,您需要在PlayerDatabase.xlsm
中有一些数据并设置所有内容,包括正确的 SQL 语句。要将数据输入任何文件,您将需要不同的连接设置和不同的 SQL 语句。在您的问题中,您询问 ISAM 问题,因此我提供了可能的解决方案和想法。对于其他人,请作为其他问题。
好吧抱歉.. 是的,我使用了您的代码,但不幸的是,它以只读方式提供了数据库或对象【参考方案2】:
解决如下:
string ConeectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtFlp.Text + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"");
OleDbConnection oconn = new OleDbConnection(ConeectionString);
【讨论】:
以上是关于在 excel 2007 vba 中找不到可安装的 ISAM的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Excel 2007 VBA 中使用 Option Strict Off 进行后期绑定
将 Excel 2007 中的文本写入 Sharepoint 站点上的 .txt 文件会导致运行时错误“76”找不到路径