根据文件名访问导入csv到各种表

时间:2014-08-25 13:53:46

标签: ms-access csv access-vba ms-access-2010

我一直在搜索stackoverflow中的各种网站和链接,我找不到我需要的东西。目前我有一个Access数据库,其中包含3个名为Oven1,Oven2和Oven3的表。根据IP地址和日期字段,每天为每个文件创建一个CSV文件。我想要做的是创建一个宏或其他方式将相应的CSV从文件名中的IP地址导入到正确的Oven表中,并导入今天的CSV日期。我还必须将一个字段格式化为短文本,否则它将无法正确导入数据。对于烤箱3,IP是10.113.130.220,对于烤箱2,IP2是.221,对于Oven3,IP是.222。我想知道这是否可以做到,或者我会通过PowerShell尝试这样做更好吗?

2 个答案:

答案 0 :(得分:0)

当然,这很容易。它看起来像这样:

DoCmd.TransferText acImportDelim, "spec-oven1", "oven1", "c:\...\10.113.130.220.cvs"
DoCmd.TransferText acImportDelim, "spec-oven2", "oven2", "c:\...\10.113.130.221.cvs"
DoCmd.TransferText acImportDelim, "spec-oven3", "oven3", "c:\...\10.113.130.222.cvs"

spec-oven1是保存的导入规范。通过先手动导入文件并保存导入规范来创建它。

答案 1 :(得分:0)

如示例所示,如果您希望获取当前日期,可以格式化字符串变量。

Private Sub GetOvenData()
   Dim strDate As String
   strDate = Format(Date, "yyyymmdd")
   DoCmd.TransferText acImportDelim, , "Oven1", "\\10.113.130.220\folder\" & strDate & ".csv", 1
   DoCmd.TransferText acImportDelim, , "Oven2", "\\10.113.130.221\folder\" & strDate & ".csv", 1
   DoCmd.TransferText acImportDelim, , "Oven3", "\\10.113.130.222\folder\" & strDate & ".csv", 1
End Sub

\folder\更改为文件所在的位置。