SQL运行时的Excel ADODB连接错误
我试图使用SQL查询将excel工作表作为表格处理。我编写了以下代码:SQL运行时的Excel ADODB连接错误,sql,excel,runtime-error,adodb,vba,Sql,Excel,Runtime Error,Adodb,Vba,我试图使用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 mast
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
表1从单元格A1开始有以下列
患者ID进展 很多 纽洛特
loTFdate
实际注册表
莲花纲 progressionClass
永久旗 运行代码时,出现以下错误: “运行时错误”-2147467259(80004005)” “Sheet1$”不是有效名称。请确保它不包括 无效字符和标点符号,且不太长“
我今天也犯了同样的错误。我发现原因是excel文件处于只读状态。当我将其保存到另一个位置时,错误立即得到修复。这很好&您认为,只有当工作表未实际调用
Sheet1
时,才会看到此错误,您确定吗?(顺便说一句,您的测试使连接处于打开状态)我确信它被称为。还有什么事情我可能做错了吗?您可能希望在哪个子例程中设置objRS.ActiveConnection=objConn
?XL_DB_relMem()?它对我来说就像预期的一样(Excel 2016)。尝试在两个位置重命名工作表,看看会发生什么。