【问题标题】:System Object Method issue系统对象方法问题
【发布时间】:2016-10-24 10:44:32
【问题描述】:

我今天才了解 FSO,所以我试图将它实施到我的数据库中,因此每小时导入一次统计信息(每小时在文件夹中出现一个新文件)

当我运行代码时,它会找到文件但不导入数据并抛出运行时 3011 错误

我的模块代码:

  Function getFilename(path As String) As String
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim dateModified As Date

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(path)

For Each objFile In objFolder.Files
Debug.Print objFile.Name
If InStr(objFile.Name, "hourly performance") > 0 And Not Left(objFile.Name, 1) = "~" Then
    If objFile.datelastmodified > dateModified Then
    dateModified = objFile.datelastmodified
    getFilename = objFile.Name
    End If

End If

Next objFile

End Function

我的 VBA 代码是:

 Dim strFilename As String

strFilename = getFilename("C:\stats folder hourly\")

' Import Weekly stats
            DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=10, _
            tablename:="Weekly", FileName:=strFilename, _
            Hasfieldnames:=True, Range:="AgentActivity CSV!"

错误:

Microsoft access 数据库引擎找不到对象“文件名”确保该对象存在并且您正确拼写名称和路径名

帮助

【问题讨论】:

  • 您的getFilename() 函数将返回一个空白字符串"" 或一个简单 文件名(没有路径)。 A 对于第一个问题,您应该添加检查 If strFilename <> "" Then DoCmd.TransferSpreadsheet ... 至于第二个问题,DoCmd.TransferSpreadsheet 需要 strFilename 作为 pure 名称还是需要完整路径?最后是否需要打开该文件?

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


【解决方案1】:

尝试改变

getFilename = objFile.Name

getFilename = objFSO.GetAbsolutePathName(objFile)

wich 会给你绝对路径,比如 c:\folder\file.ext

【讨论】:

    【解决方案2】:

    我终于解决了问题

        DoCmd.TransferSpreadsheet transfertype:=acImport, SpreadsheetType:=10, _
        tablename:="Hourly", FileName:="FILPATH" & hourly & "", _
        Hasfieldnames:=True, Range:="AgentActivity CSV!"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      相关资源
      最近更新 更多