【问题标题】:Auto importing into access - forcing field type自动导入访问 - 强制字段类型
【发布时间】:2016-09-15 15:33:32
【问题描述】:

我在 Microsoft Access 数据库中有一个表,我每天都会从每日绩效报告中导入数据。导入数据中的特定字段(指站点名称)是大多数报告的源数据中的文本字段,但是对于一份报告,它是文本字段(例如站点 00415)和数字字段(例如 00415)的混合。当数据存储在 Excel 中时,我将数字站点强制为文本,因为其中一些具有前导零。

Access 表的数据类型为Text(格式为@ 应该是相关的),但是在导入带有数字站点的报告时,由于尝试导入,因此在具有文本条目的行上出现导入错误整个列作为数字而不是文本。

有没有办法强制将字段作为文本导入,即使文件的第一行(我相信这是字段类型的访问基础)是数字的?

或者,我是否应该将字段类型更改为其他可以处理文本和数字但重要的是保持数字不变而不以任何方式格式化。

对于它的价值 - 我一直通过保存的导入方法导入数据,然后通过使用以下脚本编写脚本并在两种导入方法中都遇到了这个问题:

Option Compare Database

Sub import_test()
  Dim strXls As String
  strXls = "C:\Users\me\Desktop\IMPORT.xlsx"

  DoCmd.TransferSpreadsheet acImport, , "ImportDB", _
    strXls, True, "A1:Z100"

End Sub

【问题讨论】:

    标签: excel ms-access types import vba


    【解决方案1】:

    默认情况下,Access 将仅检查前 24 行数据以确定字段的建议类型。

    如果前 24 行的数据全部为数字,则 Access 可能已猜到您的字段的数据类型不正确。该数据类型与您的“已保存的导入”一起保存,Access 使查看已保存的字段类型变得很困难。

    听起来您的表设置为Short Text@ 格式。这非常适合您的需求。

    您需要确保您的 Excel 文件中的值具有文本格式,尤其是带有前导零的值。然后,您需要再次运行“导入 Excel 文件向导”,但这次务必明确设置每列的字段类型,特别注意有问题的字段 - 您可能会发现 Access 假定该字段应为 Double , 什么时候应该是Short Text

    完成此操作后,您必须使用DoCmd.RunSavedImportExport 方法,因为TransferSpreadsheet 方法不允许您为 Excel 文件指定任何字段类型详细信息。

    DoCmd.RunSavedImportExport "MyImport"
    

    这是文本字段中的一些文本格式的值。

    如果您有持续的问题,您可能需要将 Excel 文件导出为文本文件格式,然后使用 Access 导入文件,但我怀疑您是否需要这样做。

    【讨论】:

    • 非常感谢您的建议。我将能够在未来几天内审查我的流程,因此会根据您的建议对其进行更新
    • 感谢您使用@格式的建议。单独的短文本似乎并不能解决这个问题。请注意,除非您更新了注册表,否则我相信列分析基于前 8 行。
    猜你喜欢
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多