将特定数据从 csv 文件导入 MS Access

Posted

技术标签:

【中文标题】将特定数据从 csv 文件导入 MS Access【英文标题】:Importing specific data from csv file into MS Access 【发布时间】:2017-07-13 10:57:21 【问题描述】:

我有一个 csv 文件,它是一个工具的输出,我需要从这个文件中读取特定数据(只是 B3,然后从 A13 到 C17,它总是相同的)。之后,需要将其导入到 ms 访问表中。有没有我可以用来执行此操作的功能,然后我可以在按钮后面设置它以便用户友好?

【问题讨论】:

A13 到 C17 是 Excel 范围。 csv 文件基本上是一个文本文件。如果您只需要 Excel 中的特定范围,则可以将 csv 转换为 excel,然后导入(或链接到)该范围。否则,您必须导入整个 csv。 可能更简单的解决方案(而不是将其转换为电子表格,然后从那里导入特定列)只是使用DoCmd.TransferText 导入整个工作表,然后删除不需要的列或将所需的列复制到表中并删除旧表。 【参考方案1】:

将文件转换为 Excel(另存为 -> Excel 工作簿)后,使用按钮后面的这行代码将数据导入 Access:

DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9,  YourTableName, YourFileName, False, "B3"
DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9,  YourTableName, YourFileName, False, "A13:C17"

数据在 Access 中后,您可以对其进行任何操作。 请在TransferSpreadsheet 功能上找到here 帮助。

您可以使用Excel.Application对象通过代码将csv转换为Excel。

【讨论】:

感谢您的回复我的代码已经运行到需要一个 csv 文件并将其转换为 excel 文件并开始导入它的地步,问题是将每个单元格定义为您提供的格式给出一个错误说“B3”找不到。我在这里环顾四周,看到一篇类似的帖子,上面说尝试命名范围然后调用它,但从访问端找不到任何东西这是可能的,还是有办法在不命名的情况下引用单元格?再次感谢您迄今为止的建议

以上是关于将特定数据从 csv 文件导入 MS Access的主要内容,如果未能解决你的问题,请参考以下文章

将分隔文件 (.csv) 中的行导入 MS-Access 表

从 MS Access 导入数据

将 .csv 导入 MS Access。 “AtEndOfStream”没有读取最后一行

MS Access 导入 csv 广告覆盖表中的数据

从关闭的 CSV 更新 MS Access 数据表而不导入

将 CSV 导入新表 -MS Access