excel – 自动导入访问 – 强制字段类型

我在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

最佳答案 默认情况下,Access仅检查前24行数据,以确定字段的建议类型.

如果您的数据对于前24行都是数字,那么Access可能已猜测您的字段的数据类型不正确.该数据类型与“保存的导入”一起保存,而“访问”使得查看保存的字段类型变得很困难.

听起来你的表是用短文本和@格式设置的.这非常适合您的需求.

您需要确保Excel文件具有值的文本格式 – 尤其是带有前导零的值.然后,您需要再次运行“导入Excel文件向导”,但这次一定要明确设置每列的字段类型,特别注意有问题的字段 – 您可能会发现Access假定字段应为Double,它应该是短文.

《excel – 自动导入访问 – 强制字段类型》

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

DoCmd.RunSavedImportExport "MyImport"

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

《excel – 自动导入访问 – 强制字段类型》

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

点赞