【发布时间】:2016-07-03 00:02:54
【问题描述】:
这是一个最佳实践问题。
任务:
我需要将报告导入 Access 2013。该报告可以生成为 .csv 文件或 .xlsx 文件。在导入过程中,我需要:
- 忽略不相关的数据行,仅导入报告某一部分中的数据。此相关数据将在适当的 包含表名、表头和下面的记录的表。
- 将列(很可能按标题)与我数据库中的现有数据进行匹配。
- 将匹配的列导入到适当的匹配列中,在数据库的适当匹配表中,并相应地键入数据。
- 为导入的记录生成自定义键。
有很多方法可以解决,我只是在寻找社区的一点意见,以了解什么可能是最有效的方法。导入速度很重要,您可以假设报告将有大约 50k 条记录。
我的背景:
我是一位非常高级的程序员,在 VBA 方面有一些经验,而在 MSAccess 方面经验很少。
编辑
我的数据如下所示:
Title Cell
File Info Cell
Time Date Cell
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
Data1, Data 2
....(continues for around 800 rows)
Second Table Title Cell
Col1Title, Col2Title, ColTitle, Col4Title ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
Data 3, Data4, Data 5, Data6 ....(continues for around 50 columns)
...(Continues for around 1500 rows)
End of CSV
我想最大的问题是如何从文本文件中只提取表 2。这似乎阻止了我使用 SQL 来查询数据。我可以只选择文本文件的第二个表格吗?
【问题讨论】:
-
我使用了链接表和追加查询。它们工作得很好。
-
最好的?不知道。对于 csv 数据,导入规范将以最快的速度获取数据,但鉴于您只想要其中的一部分,我会选择您最好一次读取一行,以找到您想要的内容.对于.xlsx,我认为您需要通过创建对象打开它,并希望您可以通过命名范围定位数据,但如果您必须遍历表格的单元格,我怀疑它会那么慢.找到数据后,SQL 操作/使用数据通常比使用游标和循环更快。
标签: ms-access import vba ms-access-2007