MS Access - 将一个文本字段动态拆分为列

时间:2014-12-09 11:35:22

标签: vba split access-vba

我有一个包含900多列的Excel文件,我需要定期导入Access。不幸的是,我得到了Excel文件,无法更改数据结构。好消息是我只需要那些900+的列。不幸的是,MS Access不能处理超过255列的文件。

所以我的想法是导入为csv文件,只包含文本字段中每行的所有列。然后通过拆分在Access中使用VBA再次将其分解。

问题: 由于我不需要所有列,我只想保留一些项目。所以我输入了一个我需要保留的列号列表。从某种意义上说,该列表是动态的,它是用户定义的。有一个表格,其中包含用户想要拥有的所有商品编号。

我可以相对轻松地拆分sourceTbl字段。

SELECT split(field1, vbTab) from sourceTbl

如果我知道我总是需要提取某些列,我可以用probalby写一些

SELECT getItem(field1, vbTab, 1), getItem(field1, vbTab, 4), ...

其中getItem是自定义函数以返回项目编号i。问题是要检索的列/数量不是静态的。我从另一个表中动态读取,列出要保留的项目编号。

示例数据: sourceTbl:field1 = abc; def; rtz; jkl; wertz; hjk

columnsToKeep:1,4,5

应输出:abc,jkl,wertz

Excel文件各有大约20k行。每个文件大约100 MB数据。每个导入说5个文件。在所需列上过滤后,导入的所有数据大约为50 MB。

0 个答案:

没有答案