找不到可安装的 ISAM Excel 2010
Posted
技术标签:
【中文标题】找不到可安装的 ISAM Excel 2010【英文标题】:Could Not Find Installable ISAM Excel 2010 【发布时间】:2014-07-20 19:44:43 【问题描述】:我在 Excel 2010 中有这个子程序,它应该从 Access 2010 的表中复制。当我尝试运行代码时,它给了我一个“找不到可安装的 ISAM”。当我调试时,它会突出显示 objDB.Execute。
Private Sub btnGetData_Click()
Unload ParameterMenu
formWait.Show
'Save workbook
ActiveWorkbook.Save
Dim strExcelFile As String
Dim strWorksheet As String
Dim strDB As String
Dim strTable As String
Dim objDB As Database
strExcelFile = "X:\Form.xlsm"
strWorksheet = "RawDates"
strDB = "X:\Tables.accdb"
strTable = "Dates"
Set objDB = OpenDatabase(strDB)
objDB.Execute _ 'Error occurs here.
"SELECT * INTO [Excel 14.0;DATABASE=" & strExcelFile & _
"].[" & strWorksheet & "] FROM " & "[" & strTable & "]"
objDB.Close
Set objDB = Nothing
Unload formWait
FinishDialog.Show
End Sub
我对 VBA 的经验并不多,因此我们将不胜感激。
【问题讨论】:
【参考方案1】:正确的格式是“Excel 12.0 Macro”而不是“Excel 14.0”:
objDB.Execute _ 'Error occurs here.
"SELECT * INTO [Excel 12.0 Macro;DATABASE=" & strExcelFile & _
"].[" & strWorksheet & "] FROM " & "[" & strTable & "]"
编辑:
也许改用 ADO:
Private Sub btnGetData_Click()
Unload ParameterMenu
formWait.Show
'Save workbook
ActiveWorkbook.Save
Dim strExcelFile As String
Dim strWorksheet As String
Dim strDB As String
Dim strTable As String
Dim objDB As Object
Dim rs As Object
strExcelFile = "X:\Form.xlsm"
strWorksheet = "RawDates"
strDB = "X:\Tables.accdb"
strTable = "Dates"
Set objDB = CreateObject("ADODB.Connection")
With objDB
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & strDB & ";"
.Open
End With
Set rs = CreateObject("ADODB.Recordset")
rs.Open "SELECT * FROM " & "[" & strTable & "]", objDB, 3, 1, 1
If Not rs.EOF Then _
ThisWorkbook.Worksheets(strWorksheet).Cells(Rows.Count, "A").End(xlUp).Offset(1).CopyFromRecordset rs
rs.Close
objDB.Close
Set objDB = Nothing
Unload formWait
FinishDialog.Show
End Sub
【讨论】:
它现在给我一个错误 3011,说它找不到 RawDates。我已经仔细检查了所有名称,它们都是正确的,但是它一直给我这个错误。 如果是现有工作表,则需要使用RawDates$
作为名称。
您是要追加到现有工作表还是创建新工作表?
追加。该表已经存在,我想向其中添加数据。但即使我删除表,它也会给我 3011 错误。
您正在写入代码所在的同一个工作簿吗?对于追加查询,您需要 INSERT INTO 而不是 SELECT INTO - 类似于:"INSERT INTO [Excel 12.0 Macro;DATABASE=" & strExcelFile & _ "].[" & strWorksheet & "] SELECT * FROM " & "[" & strTable & "]"
以上是关于找不到可安装的 ISAM Excel 2010的主要内容,如果未能解决你的问题,请参考以下文章
找不到可安装的 ISAM。上传 Excel 文件 (.xls) 格式时