【问题标题】:Importing excel to access with wildcards导入excel以使用通配符访问
【发布时间】:2016-10-24 08:38:48
【问题描述】:

我正在尝试将 Excel 文档导入到 access 中尚不存在的表中

我正在使用以下代码:

' Import Hourly stats
        DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=10, _
        tablename:="Hourly", FileName:="C:\Filename\folder\stats* _
        Hasfieldnames:=True, Range:="AgentActivity!"

我已将通配符 * 放在文件名的末尾,因为文件名的后半部分每隔一小时左右会发生变化。

当我运行代码时出现此错误:

Microsoft access 数据库引擎找不到对象。确保对象存在并且正确拼写其名称和路径名

感谢任何帮助。

【问题讨论】:

    标签: sql ms-access vba ms-access-2010


    【解决方案1】:

    看起来您只是缺少文件名末尾的结束引号。

    ' Import Hourly stats
        DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=10, _
        tablename:="Hourly", FileName:="C:\Filename\folder\stats*", _
        Hasfieldnames:=True, Range:="AgentActivity!"
    

    【讨论】:

    • 感谢您的回复 - 我已经添加了结束语,但它抛出了运行时错误 3011
    • 在这种情况下,可能只是将通配符用于 TransferSpreadsheet 的问题 - 我认为您不能以您尝试使用此功能的方式使用它们。您可能需要在代码中设置一个变量,以便在该时间点找到特定的文件名 - 这取决于它的命名方式(它只是一个日期戳吗?)。然后将其附加到函数的文件名部分,为FileName:="C:\Filename\folder\stats" & variableName,
    • @finjo 打算提出同样的建议。但是在 variableName 中,您会使用 DIR 函数重新运行文件名吗? variableName = dir("C:\Filename\folder\stats*")