Автоматически заполнять базу данных Access из скрипта - PullRequest
1 голос
/ 24 октября 2011

У меня есть скрипт, который загружает данные из базы данных в серию CSV-файлов. После загрузки они должны быть загружены в базу данных Access для создания отчетов (я использую DoCmd.TransferText и у меня есть сохраненная текстовая спецификация импорта). Каждый раз, когда я запускаю задание, которое генерирует данные и загружает их в CSV, мне обычно нужно загружать свежую копию незаполненной версии базы данных Access. Есть ли способ автоматизировать это в пакетном скрипте?

Короче, мне нужно уметь:

  • скопировать незаполненный файл Access в новый файл с отметкой времени в имени
  • загрузка определенных файлов CSV, соответствующих шаблону (например, «data_for_reporting_2_20111024_135142.csv») в каталоге, в файл Access.

1 Ответ

2 голосов
/ 24 октября 2011

Я думаю, вы можете использовать VBScript, чтобы делать то, что вам нужно.

  • скопировать незаполненный файл Access в новый файл с отметкой времени в имя

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

См. Метод CopyFile .

  • загрузка определенных файлов CSV, которые соответствуют шаблону (например, "data_for_reporting_2_20111024_135142.csv") в каталоге в Доступ к файлу.

Вы можете проверить Коллекция файлов вашей папки CSV, определить, какие из этих имен файлов соответствуют вашему целевому шаблону, а затем запустить DoCmd.TransferText с каждым соответствующим именем файла.

Вы должны запустить DoCmd.TransferText из экземпляра приложения Access:

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.

Создайте функцию SnarfCSV в стандартном модуле в вашем шаблоне MDB. Затем создайте макрос mcrSnarfCSV с функцией SnarfCSV в качестве действия кода выполнения. Затем, после того как вы скопируете шаблон MDB в новый MDB, откройте новый с помощью переключателя командной строки /x, чтобы запустить макрос.

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