我正在使用以下函数从 OleDB 模式表中获取工作表名称:
Public Function GetSheetName(ByVal dtSchema As DataTable) As String
Dim sheetName As String = ""
Try
If Not dtSchema.Rows(0)("TABLE_NAME").ToString().Contains("#") Then
sheetName = dtSchema.Rows(0)("TABLE_NAME").ToString()
End If
Catch ex As Exception
BuildResultTraceString("Exception in GetSheetName")
BuildResultTraceString(ex.Message)
End Try
Return sheetName
End Function
然后我得到这样的表:
sql.Append("SELECT * FROM [" & sheetName & "A22:T10000]")
dt = _dh.GetTable(sql.ToString())
但是,当我尝试加载名为“20130418113010937”的工作表时,Get Table 方法会捕获此异常:
The Microsoft Access database engine could not find the object ''20130418113010937$'A2:I10000'
它适用于我正在使用的所有其他工作表名称,但不适用于这个名称。我认为这是因为它完全是数字的。有什么解决方法吗?该过程是自动化的,因此除非我以某种方式以编程方式进行,否则我无法手动更改工作表名称。
谢谢!