将 EAN-13 从 Excel 导入 Access
Posted
技术标签:
【中文标题】将 EAN-13 从 Excel 导入 Access【英文标题】:Import EAN-13 from Excel into Access 【发布时间】:2018-10-09 13:58:58 【问题描述】:我需要将数据从 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”...
导入不需要完全自动,它将由受过培训的人员完成。
【问题讨论】:
【参考方案1】:在 Excel 中为数字和零小数列应用格式。
或者通过在单元格值前加上引号来强制单元格为文本:
7340041127001 -> '7340041127001
两者都适用于 Office 365 并链接 Excel 工作表。
然后使用查询将数据转换并附加到目标表中。
【讨论】:
我使用 Access 2010 和 Excel 2010: - 格式列将无法完成这项工作 - 为报价添加前缀有效,但不可行(每年几次大约 2000 个值......)但谢谢为了您的回答,帮助我找到了解决方案! 那是..? 再次开始测试,发现Excel的“格式化单元格”功能完全没有影响!【参考方案2】: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 中删除不需要的值!
【讨论】:
以上是关于将 EAN-13 从 Excel 导入 Access的主要内容,如果未能解决你的问题,请参考以下文章