gpt4 book ai didi

ms-access - Excel 工作表名称不允许使用 VBA - DAO 将数据导入 Access

转载 作者:行者123 更新时间:2023-12-05 00:15:17 24 4
gpt4 key购买 nike

我的目标是将一些数据从 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_austrianNetImportsc_sqlRetrieveAustriaNetImports分别是包含 Excel 源文件路径和用于检索数据的 SQL Select 语句的字符串变量。

我的问题是,当 Excel 源文件的工作表名称以下划线结尾时,SQL Select 查询不起作用并且 VBA 崩溃。例如,如果我要从中检索数据的工作表名为 EEX_EXC_Scheduled_PWR_AUT_H1_A_c_sqlRetrieveAustriaNetImportsSELECT * FROM [EEX_EXC_Scheduled_PWR_AUT_H1_A_$A1:H65536]然后 VBA 因消息而崩溃
  • 运行时错误 '3011' Microsoft jet 数据库引擎找不到对象 'EEX_EXC_Scheduled_PWR_AUT_H1_A_$A1:H65536' 确保该对象存在并且您正确拼写了其名称和路径名。

  • 如果我通过删除最后的下划线来修改工作表的名称和 SQL 语句,则它可以工作。我还尝试使用打开记录集
    Set rs = sourceDB.OpenRecordset("Sheet$13")

    但我仍然收到相同的错误消息。

    我不允许修改工作表的名称。如何使用原始名称(末尾包含 _ 的名称)获取数据?

    谢谢你。

    最佳答案

    您应该能够以不同的名称保存电子表格。我在导入 CSV 文件时这样做,但实际上使用 Excel 文件更容易:

    bRename = false
    while right(c_source_austrianNetImports) = "_" ' rename workbook
    c_source_austrianNetImports = left(c_source_austrianNetImports,len(c_source_austrianNetImports-1)
    bRename = True
    wend
    if bRename then
    ActiveWorkbook.SaveAs c_source_austrianNetImportst, xlWorkbookNormal
    endif

    关于ms-access - Excel 工作表名称不允许使用 VBA - DAO 将数据导入 Access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15249722/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com