导入数据时,请停止使用科学记数法访问2007年

所以我用VBA从Excel文件(从其他地方的CSV报告转换而来)导入一个庞大的零件号码清单。 在导入之前调用excel工作簿来准备数据,包括下面的代码来格式化零件编号,以确保零件编号不会丢失任何信息(刚刚发现):

Columns("B:B").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 2), TrailingMinusNumbers:=True

一旦excel表被制成,我把它们导入到表中使用:

DoCmd.TransferSpreadsheet acImport, 5, "PartNumberX", "D:\Target\Import Data.xlsx", -1, "PartNumberX!" & PartDim

在excel文件和Access表之间的某个地方,没有字母的零件号码和长度超过10位的数字正被转换为科学记数法,并丢失了数字上的最后几位。 我可以确认,Excel文件没有科学记数法,所以我相当确定这是发生在导入过程中的某个地方。

任何帮助,将不胜感激!

-编辑:

当使用DoCmd.TransferSpreadsheet它创build表“PartNumberX” – 它不存在。

– 更新:

所以我认为导入到一个新的表格可能会导致这个问题。 导入到部件号字段作为文本字段的预定义表格中,在防止使用科学记数法访问表格方面没有区别。

看起来我有一个愚蠢的…我认为,因为我格式化Excel中的零件号码的原始列表是正确的,从它复制的数据也将被正确格式化。 显然这是不正确的。 我用了

 Columns("B:B").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _ :=Array(1, 2), TrailingMinusNumbers:=True 

来格式化零件号列表的其他迭代,现在它工作正常。

它总是让你感觉到的小事情 –