首页 > 解决方案 > 将 EAN-13 从 Excel 导入 Access

问题描述

我需要将数据从 EXCEL 表导入 Access。但是 Access 访问将 EAN-13 导入为 Double(科学记数法)而不是字符串,因此丢失了最后一位数字。

我尝试通过 DoCmd.TransferSpreadsheet acImport ... 进行此导入。如果这样做,Access 将解释数据并分配数据类型。

1) 当您有一列包含前几行的空白字段和​​稍后的字符串数据时,这将导致问题。我通过在标题 (fieldNames) 之后添加一个额外的行来解决这个问题。在此填充的所需数据类型的数据中。这解决了字符串数据的问题。

2)但是我无法为 EAN-13 数据(包含 13 位数字的 EXCEL 字段)解决这个问题。EXCEL 将此序列存储为字符串。有时它会以科学计数法显示这个字符串值:“7340041127001”将变为“7.340041127e012”。但是,在那些时刻,提交的条目仍将显示“7340041127001” - 因此完整值保持不变。使用前导“'”甚至可以避免使用科学记数法。所以我认为Excel中的数据还可以。

如果我尝试将 EAN-13 数据从 Excel 导入到 Access,则会发生这种情况:“7340041127001”变为“7.340041127e012”。从“'7340041127001”导入有效,但编辑所有 Excel 字段真的很乏味!

我试图将 EAN-13 导入到预定义的空表中。但这不适用于 EAN:Excel 中的值将转换为字符串,但存储的值是“7.340041127e012”...

导入不需要完全自动,它将由经过培训的人员完成。

标签: excelms-accessimporttype-conversionscientific-notation

解决方案


1) 链接到 Excel 电子表格并使用“DoCmd.TransferSpreadsheet”似乎在 Access 2010 / Excel 2010 中的工作方式相同。访问表中字段的数据类型似乎不受 Excel 的“单元格格式”功能的影响,但是通过 Excel 中数据的前几个值(=前几行)。一 (1) 行不够,十四 (14) 行...

2) 如果前几行包含字符串数据和数字数据,Access 将为这些字段分配数据类型“文本”

3) 在 Excel 中为 EAN-13 字符串添加前缀将导致正确导入,但对我的数据不可行。我发现无法将 EAN-13 字符串直接导入访问表。然而

4) 在 Excel 中添加一列并使用以下函数将生成一个值,该值将正确导入: =Text(D2; 0) 其中单元格 D2 包含 EAN-13 字符串。我对所有 2500 行都使用了这个公式。空的 EAN-13 字段将被分配一个值“0”——这不是一个有效的 EAN-13 值。这稍后将允许删除 Access 中不需要的值!


推荐阅读