从Excel导入EAN-13到Access

时间:2018-10-09 13:58:58

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

我需要将数据从EXCEL表格导入到Access中。但是,Access Access会将EAN-13导入为Double(科学记号)而不是字符串,从而使最后一位丢失。

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

1)如果您有一列的前几行包含空白字段,之后的字符串数据则将导致问题。 我通过在标题(fieldNames)之后添加额外的一行来解决此问题。在此填充所需数据类型的数据。这样可以解决字符串数据的问题。

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

如果我尝试从Excel导入EAN-13数据以进行访问,则会发生此情况:“ 7340041127001”变为“ 7.340041127e012”。从“'7340041127001”导入是可以的,但是要编辑所有Excel字段真的很乏味!

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

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

2 个答案:

答案 0 :(得分:0)

将格式应用于Excel中的“数字”和“十进制零”。

或通过在单元格值前面加上引号来强制单元格输入文本:

7340041127001 -> '7340041127001

两者都可以通过Office 365和链接 Excel工作表为我工作。

然后使用查询将数据转换并附加到目标表中。

答案 1 :(得分:0)

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中不需要的值!