自动导入访问权限 - 强制字段类型

时间:2016-09-15 15:33:32

标签: excel ms-access types import access-vba

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

1 个答案:

答案 0 :(得分:2)

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

如果您的数据在前24行中都是数字,那么Access可能会猜到您的字段的数据类型不正确。该数据类型与“保存的导入”一起保存,而“访问”则很难查看已保存的字段类型。

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

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

enter image description here

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

TransferSpreadsheet

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

enter image description here

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