【发布时间】:2015-09-21 14:11:42
【问题描述】:
我正在尝试使用 VBA 和 ADO 选项从另一个文件中查询 Excel 文件。当我运行此代码时,它会抛出错误“无法更新数据、数据库或对象只读”:
Public Function fnExecuteXlQuery _
(ByVal strPath As String, _
ByVal strQuery As String) As ADODB.Recordset
Dim rs As ADODB.Recordset
Dim conStr As String
On Error GoTo ErrorHandler
conStr = "Provider=Microsoft.Jet.OLEDB.4.0; " _
& "Data Source=" & strPath & "; Extended Properties=Excel 8.0"
Set rs = New ADODB.Recordset
rs.Open strQuery, conStr, adOpenDynamic
Set fnExecuteXlQuery = rs
Exit Function
ErrorHandler:
Set fnExecuteXlQuery = Nothing
fnDisplayError Error(Err) & "Unable to fetch data from DTS...", ERROR_TYPE_ERROR
End Function
“strPath”是源 Excel 文件,“strquery”的 SQL 代码如下:
Select [Activity],[Name],[Date],[Hours Spent]
from [Time sheet$]
where [Activity] = 'Billable Activities'
Order by Name,date
【问题讨论】:
-
问一个显而易见的问题 -
strPath的所有文件夹路径和文件名等拼写是否正确? -
是的……没有变化
-
我看不到那里有任何更新。您实际上在哪里得到错误?
-
@Rory 没有更新只是一个选择查询,但错误显示它是只读的