【发布时间】: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