【问题标题】:Stop Access 2007 From Using Scientific Notation When Importing Data禁止 Access 2007 在导入数据时使用科学记数法
【发布时间】:2014-08-10 08:09:08
【问题描述】:

因此,我正在使用 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 时,它正在创建表“PartNumberX” - 它尚不存在。

-更新:

所以我认为导入新表可能会导致此问题。将零件编号字段作为文本字段导入到预定义表中后,对于防止使用科学计数法访问表单没有任何区别。

【问题讨论】:

  • 能否提供一个会发生这种情况的数据集,好吗?我自己也看到过这种情况,但很难重现它。如果你能提供几行数据可以粘贴到 Excel 书中,那将非常有用。
  • 这些将是科学记数法:957010802508 957010802008 957010801608 - 这些都可以:9405008080 9405008040 9405006080 91640SM4 0030 91626SYA 0030SYA 0030
  • 嗯,这很奇怪,对我来说很好用。也许数据的顺序很重要。我什至尝试了几种方法,但似乎还可以。
  • @ VBlades - 当你测试它时,你是使用传输电子表格到一个已经存在的表中还是让它创建表?我最初忘记提及这一点,但它正在创建一个名为“PartNumberX”的表,该表尚不存在。

标签: excel ms-access vba ms-access-2007


【解决方案1】:

看起来我很笨...我认为由于我在 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

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

总是小事让你感动-_-'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-01
    • 2020-09-22
    • 1970-01-01
    • 2022-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    相关资源
    最近更新 更多