SQL运行时的Excel ADODB连接错误



我试图使用SQL查询将excel表作为表使用。我写了以下代码:

Global objConn As ADODB.Connection
Global ConnString As String 
Global SQL As String
Global objRS As ADODB.Recordset
Global masterFile As String
Public Sub XL_DB_connect()
Set objConn = New ADODB.Connection
masterFile = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name
ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
             "Data Source=" & masterFile & ";" & _
             "Extended Properties=""Excel 12.0;" & _
             "HDR=Yes;"";"
objConn.ConnectionString = ConnString  
objConn.Open
End Sub

Public Sub executeQuery()
objRS.Source = SQL
objRS.ActiveConnection = objConn   
objRS.Open
End Sub

Public Sub XL_DB_relMem()
Set objRS = Nothing
Set objConn = Nothing
SQL = vbNullString
End Sub

Public Sub test()
Set objRS = New ADODB.Recordset
objRS.CursorLocation = adUseClient
SQL = "select PatientGID, count(LOT) from [Sheet1$] group by PatientGID"
Debug.Print SQL
Call XL_DB_connect
Call executeQuery
objRS.MoveFirst
Range("Output").Resize(10, 2).ClearContents
Range("Output").CopyFromRecordset objRS  
End Sub

Sheet1从单元格A1开始有以下列患者GID
进展大量newLoT
loT日期
实际方案
loT注册类progressionClass
pERMetFlag

在运行代码时,我得到以下错误:

"运行时错误'-2147467259(80004005)'

"Sheet1$"不是有效的名称。确保它不包括无效字符和标点符号,并且它不是太长"

我今天也遇到了同样的错误。我发现原因是excel文件处于只读状态。当我把它保存在另一个位置时,错误立即得到了修复。

最新更新