从脚本自动填充Access数据库

时间:2011-10-24 17:49:51

标签: ms-access batch-file dos ms-access-2003

我有一个脚本可以将数据库中的数据下载到一系列CSV文件中。下载后,必须将它们加载到Access数据库进行报告(我使用DoCmd.TransferText,并具有保存的文本导入规范)。每次我运行生成数据并下载到CSV的作业时,我通常需要加载到Access数据库的未填充版本的新副本。有没有办法在批处理脚本中自动执行此操作?

简而言之,我需要能够:

  • 将未填充的Access文件复制到名称为
  • 的时间戳的新文件中
  • 将与目录中的模式(例如“data_for_reporting_2_20111024_135142.csv”)匹配的某些CSV文件加载到Access文件中。

1 个答案:

答案 0 :(得分:2)

我认为你可以使用VBScript来做你需要的事情。

  • 将未填充的Access文件复制到时间戳为的新文件中 名字

    FileSystemObject.CopyFile“c:\ somefolder \ template.mdb”,“c:\ dest \ new.mdb”

请参阅CopyFile Method

  • 加载某些与模式匹配的CSV文件(例如 “data_for_reporting_2_20111024_135142.csv”)在目录中进入 访问文件。

您可以检查CSV文件夹的Files Collection,确定哪些文件名与目标模式匹配,然后使用每个匹配的文件名运行DoCmd.TransferText。

您将从Access应用程序实例运行DoCmd.TransferText:

Option Explicit
Dim appAccess
Dim strMdb
Const cstrFolder = "c:\dest\"

strMdb = "new.mdb"

Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase cstrFolder & strMdb, False

所以,从该实例变量中执行Transfertext:

appAccess.DoCmd.TransferText [your options]

编辑:这对我来说在VBA中创建和测试会更快。所以我想我会使用它而不是VBScript。

在模板MDB的标准模块中创建一个函数SnarfCSV。然后创建一个宏mcrSnarfCSV,其中SnarfCSV函数作为其runco​​de操作。然后,在将模板MDB复制到新MDB后,使用/x命令行开关打开新模板以运行宏。

"Path to MSACCESS.EXE" "Path to your db file" /x mcrSnarfCSV