【问题标题】:access import csv to various tables based upon file name根据文件名访问导入 csv 到各种表
【发布时间】:2014-10-18 16:44:48
【问题描述】:
我一直在 stackoverflow 中搜索各种网站和链接,但没有找到我需要的东西。目前我有一个 Access 数据库,其中包含 3 个表,分别称为 Oven1、Oven2 和 Oven3。每天都会根据 IP 地址和日期字段为每个文件创建 CSV 文件。我想做的是创建一个宏或其他方式,将文件名中的 IP 地址中的适当 CSV 导入正确的烤箱表,并导入日期为今天的 CSV。我还必须将一个字段格式化为短文本,否则将无法正确导入数据。烤箱 3 的 IP 为 10.113.130.220,烤箱 2 的 IP 为 0.221,烤箱 3 的 IP 为 0.222。我想知道这是否可以做到,或者我最好尝试通过 PowerShell 做到这一点?
【问题讨论】:
标签:
ms-access
csv
vba
ms-access-2010
【解决方案1】:
如示例所示,如果您希望获取当前日期,可以格式化字符串变量。
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\ 更改为您的文件所在的位置。
【解决方案2】:
当然,这很容易。它看起来像这样:
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 是一个保存的导入规范。通过首先手动导入文件并保存导入规范来创建它。