我的目标是将一些数据从 Excel 文件导入 Access DB。为了做到这一点,我像这样使用 DAO:
Debug.Print "Starting process to import the " & numberOfDaysToImport & " missing days"
Set sourceDB = OpenDatabase(c_sourceFile_austrianNetImports, False, True, "Excel 8.0;")
DoEvents
Set rs = sourceDB.OpenRecordset(c_sqlRetrieveAustriaNetImports)
Debug.Print "Recordset Field Count = " & rs.Fields.Count
c_source_austrianNetImports
和c_sqlRetrieveAustriaNetImports
分别是包含 Excel 源文件路径和用于检索数据的 SQL Select 语句的字符串变量。
我的问题是,当 Excel 源文件的工作表名称以下划线结尾时,SQL Select 查询不起作用并且 VBA 崩溃。例如,如果我要从中检索数据的工作表被调用,EEX_EXC_Scheduled_PWR_AUT_H1_A_
然后VBA 崩溃并显示消息c_sqlRetrieveAustriaNetImports
SELECT * FROM [EEX_EXC_Scheduled_PWR_AUT_H1_A_$A1:H65536]
- 运行时错误“3011”Microsoft jet 数据库引擎找不到对象“EEX_EXC_Scheduled_PWR_AUT_H1_A_$A1:H65536”确保该对象存在并且您正确拼写了它的名称和路径名。
如果我通过删除最后的下划线来修改工作表的名称和 SQL 语句,那么它可以工作。我也尝试通过使用打开记录集
Set rs = sourceDB.OpenRecordset("Sheet$13")
但我仍然收到相同的错误消息。
我不允许修改工作表的名称。如何使用原始名称(末尾包含 _ 的名称)获取数据?
谢谢你。