【问题标题】:Conditional Saved Import in Access/VBAAccess/VBA 中的条件保存导入
【发布时间】:2013-06-10 20:14:22
【问题描述】:

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

设置:我有一个 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)

有什么想法吗?

谢谢,

【问题讨论】:

    标签: vba ms-access import


    【解决方案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
    

    【讨论】:

    • 太棒了,汤姆,谢谢。我今天的工作差不多完成了,但我明天会先试试!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2016-11-25
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多