从 CSV 复制到访问时,避免数字被截断

Posted

技术标签:

【中文标题】从 CSV 复制到访问时,避免数字被截断【英文标题】:Avoid numbers from getting truncated when copying from CSV to access 【发布时间】:2013-01-17 07:05:43 【问题描述】:

我正在使用此代码从 csv 文件复制数据以访问表:

str = "insert into tablex (field1, field2, field3) 
select field1, field2, field3
from
 [Text; 
FMT=Delimited; 
HDR=YES; 
CharacterSet=437; 
DATABASE=" & ThisWorkbook.Path & "\data-for-tool-refresh].csvtable.csv;"

但在粘贴数据后,某些列会被截断,即十进制值会被删除。我已经检查了访问表的数据类型,它设置为“double”,但值仍然被截断,例如:15.12345 变为 15

有人可以建议我一种方法来获取这些值而不会被截断

【问题讨论】:

【参考方案1】:

将外部数据准确导入 Access 的最佳方法是描述外部文件。

这可以通过导入规范(导入向导中的高级选项卡)来完成,宏或 VBA 可以引用该规范。

如果您需要坚持使用 ODBC 文本驱动程序,就像您的问题一样,您需要一个 schema.ini。 http://office.microsoft.com/en-us/access-help/initializing-the-text-data-source-driver-HP001032166.aspx?CTT=1 解释了这一点。一个很大的缺点是规范与文件名相关联。

【讨论】:

以上是关于从 CSV 复制到访问时,避免数字被截断的主要内容,如果未能解决你的问题,请参考以下文章

如何截断数字? [复制]

将行从一个表复制到另一个表时如何解决数据截断错误,两个表具有相同的模式?

从 xlsm 复制并粘贴到 csv

VSTO SaveAs 文件被锁定

未经授权的访问异常 - 在C#中将文件复制到其他目录时访问被拒绝的路径

检测到文件正在被复制到文件夹中