【问题标题】:Import EAN-13 from Excel into Access将 EAN-13 从 Excel 导入 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”...

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

【问题讨论】:

    标签: excel ms-access import type-conversion scientific-notation


    【解决方案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 中删除不需要的值!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      相关资源
      最近更新 更多