0

我对这些东西还很陌生,所以希望我们那里的人可以帮助我。

设置:我有一个 Access 2007 数据库,它可以导入数据,然后执行一组查询并每月导出结果。

每月数据保存为 Excel 电子表格或“当前”文件夹中的文本文件。我为每个文件保存了相当繁琐的导入步骤,以方便在 Access 中将它们添加为表的过程。

有很多文件要导入,所以我编写了一个简单的 VBA 代码来一次运行所有保存的导入。

Public Sub DatabaseImp()
DoCmd.RunSavedImportExport "Import-Excel1"
DoCmd.RunSavedImportExport "Import-Excel2"
DoCmd.RunSavedImportExport "Import-Txt1"
DoCmd.RunSavedImportExport "Import-Txt2"
DoCmd.RunSavedImportExport "Etc....."
End Sub

此外,我创建了一个宏来运行此代码,一切正常。

但,

问题:根据月份,某些文件将包含在“当前”文件夹中,而其他文件则不会。

例如,假设本月没有要导入数据库的“Excel2”文件。

无论如何要修改上面的代码,以便它只在有东西可以导入时才尝试执行导入?

我知道我可以简单地手动完成,忽略“Excel2”导入。但是我想保持这个过程自动化。

我正在寻找某种可以添加到每行末尾的条件 IF 语句,例如:

DoCmd.RunSavedImportExport "Import -Excel1" 
 (ONLY IF there is an excel1 file in the 'current' folder to import)

想法,有人吗?

谢谢,

4

1 回答 1

1

您可以使用 Dir 命令。如果结果是一个空字符串,那么它不存在。

因此,在 Windows 机器上,Dir("C:\Windows\explorer.exe")将返回 explorer.exe,但 Dir("C:\Windows\bumblebee.exe") 将返回 ""。

所以设置一个If语句。

If Len(Dir(YourFile)) > 0 then
  DoCmd.RunSavedImportExport "Import -Excel1"
End if
于 2013-06-10T20:31:42.287 回答