导入Excel电子表格时MS Access 2013types转换失败

我一直在尝试将Excel电子表格导入MS Access 2013(通过接口)作为表格,并为Integertypes的字段“SegmentID”生成“types转换失败”错误。

在Excel电子表格中检查失败的行号时,它们确实是整数。 即使重新input并将整列设置为数字(并删除小数点)仍会产生相同的错误。 我需要为许多电子表格执行此导入操作,并且几乎每个我都尝试从电子表格中随机select几个到几千个同样的错误。 电子表格是.xlsx格式。

任何想法将不胜感激。 我曾经想过用这样的手段来做这个事情:

DoCmd.RunSQL "CREATE TABLE TableName ([Date] DATETIME, [Name] TEXT, ETC..." DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "TableName", "C:\ExcelData.xlxs"

整数范围从-32,768到+32,767。 你的段ID看起来像需要一个LONG整数。 您的电子表格会显示到33581,这会使您超过整数范围。

正如我前面提到的,我将尝试手动创build表并导入数据。 所有数据正在传输到创build的表中,没有错误或数据丢失。 在MS Access中的“Visual Basic”视图中Ctrl + G ,您可以使用此代码。

DoCmd.RunSQL ("CREATE TABLE Wildlife (ID COUNTER NOT NULL PRIMARY KEY, SegmentID INT, RouteID TEXT, Type TEXT, Subtype TEXT, Subtype2 TEXT);") DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "Wildlife", "C:\PathToFile\Wildlife.xlsx",-1

ID COUNTER NOT NULL PRIMARY KEY添加一个作为ID COUNTER NOT NULL PRIMARY KEY的自动编号字段ID

第二个Do.Cmd末尾的-1参数告诉Access,该字段中的第一行是列名。 DoCmd.TransferSpreadsheet方法(Access)