Access / VBA中的条件保存导入

时间:2013-06-10 20:14:22

标签: if-statement macros import ms-access-2007 access-vba

我对这些东西很新,所以希望我们那里有人可以帮助我。

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

每月数据保存为Excel电子表格或“Current”文件夹中的文本文件。我为每个文件保存了相当繁琐的导入步骤,以便于在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)

想法,有人吗?

谢谢,

1 个答案:

答案 0 :(得分: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