使用 vba/macros 将多个 CSV 文件中的特定列导入 Access 2013
Posted
技术标签:
【中文标题】使用 vba/macros 将多个 CSV 文件中的特定列导入 Access 2013【英文标题】:Import of specific Columns from multiple CSV files into Access 2013 using vba/macros 【发布时间】:2017-03-02 10:12:22 【问题描述】:我有多个列数相同(大约 616 列)和不同行数的 csv 文件(分号分隔)。我想将每个文件导入 Access 中的不同表中。我对宏/vba 完全陌生。 我遇到了两个问题:
-
我使用了来自论坛的此代码 [https://superuser.com/questions/1131994/ms-access-2016-import-multiple-csv-files][1],它工作正常,但它正在将一个 csv 文件导入一个表格中的一列中,分号分隔(意味着 csv 文件中的 616 列显示在一列中,以分号分隔访问) )。尽管数据应显示在表格的单独列中。我希望数据显示在单独的列中。导入后,我看到访问中的数据与 csv 文件相同。
csv 文件中的列标题也包含文本和数字(1 到 600)。
其次,我想从 csv 文件中导入一些特定的列。有人可以编辑此代码并添加一些编码如何将特定列从 csv 文件导入 Access。
希望我解释清楚。
【问题讨论】:
您必须规范您的数据布局 - 您最多只能访问 255 个字段。这么多列表明存储方法不佳。在此处阅读 techrepublic.com/article/… 以获取有关将数据导入 Access 的一些指导 感谢您寄给我这篇文章。我是 Access 的新手。我真的不知道它有一个最大值。限制为 255 个字段。现在我理解得更好了。 【参考方案1】:您无法将包含 600 多列的文件导入 Access。你可以试试 SQL Server。或者,您可以导入所需的特定字段。我严重怀疑您的数据集中需要 600 多个字段。
无论如何,您可以将特定字段从 Excel 导出到 Access。
Sub DAOFromExcelToAccess()
' exports data from the active worksheet to a table in an Access database
' this procedure must be edited before use
Dim db As Database, rs As Recordset, r As Long
Set db = OpenDatabase("C:\FolderName\DataBaseName.mdb")
' open the database
Set rs = db.OpenRecordset("TableName", dbOpenTable)
' get all records in a table
r = 3 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0
' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("FieldName1") = Range("A" & r).Value
.Fields("FieldName2") = Range("B" & r).Value
.Fields("FieldNameN") = Range("C" & r).Value
' add more fields if necessary...
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Sub
【讨论】:
抱歉 4 晚回复。其实很难解释。 Siemens HMI 上显示的自动图形将所有数据保存在 csv 文件中,它有 600 多列。大传感器在 6 到 7 秒内从左到右和从右到左连续移动(读取铝箔上的涂层厚度)。因此,一旦它从左向右移动,它就会保存这 600 列,反之亦然。所以可以肯定的是,在 HMI 上绘制的自动图形正在使用这 600 个值(铝箔上的厚度值从左到右以及其他方式..)。只是给你的想法。不幸的是,我也是新手以上是关于使用 vba/macros 将多个 CSV 文件中的特定列导入 Access 2013的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 gsutil 将多个 csv 文件连接成一个具有单个标题的 csv 文件
如何使用 Pandas 将多个 csv 文件中的单个数据列合并为一个?
Pandas:使用循环和分层索引将多个 csv 文件导入数据帧