gpt4 book ai didi

excel - 从 Excel 导入 Access 类型转换失败

转载 作者:行者123 更新时间:2023-12-04 22:22:39 24 4
gpt4 key购买 nike

我正在尝试将 Excel 导入 Access DB,由于类型转换失败,无法导入某些客户编号。它是 66,000 个条目中的 12 个条目。通常客户编号是一个数字,但这 12 个是字符串,如 ABCDEFT001。我尝试将表的字段设置为长文本或短文本,它们仍未导入(仅导入 ImportError 表)。你知道我还能尝试什么吗?
非常感谢您!
附言我正在尝试使用 DoCmd.TransferSpreadsheet 导入

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, "Inv level", "Path/to/file.xlsb", True, "Sheetname!"

最佳答案

此策略链接到 excel 文件,而不是直接导入它,然后从中选择数据并将任何需要它的字段转换为正确的数据类型。

Sub ImportFromExcel()
Dim pathToFile As String
Dim targetTableName As String
Dim sql As String

pathToFile = "C:\Path\To\File.xlsx"
targetTableName = "ImportResults"

'//create the link
DoCmd.TransferSpreadsheet acLink, _
acSpreadsheetTypeExcel12, _
targetTableName, _
pathToFile, _
True '//This part only if the excel file has field headers


'//import
sql = "SELECT Field1Name, CStr(CustNumber) AS CustNumber, Field3Name INTO NewImportTable FROM " & targetTableName
CurrentDb.Execute sql

'//remove the link
DoCmd.DeleteObject acTable, targetTableName
End Sub

***此代码的两个陷阱要注意:

1) 在运行此代码之前,您应该删除任何名为“NewImportTable”的表,否则您将收到“表已存在”错误。

2) 如果此 Sub 中发生任何错误在删除链接之前,下次运行时会遇到问题,因为它将创建一个名为“ImportResults1”的链接,因为“ImportResults”仍然存在。真正可怕的是这里不会抛出任何错误。它将创建“ImportResults1”,然后在“ImportResults”上运行您的 sql!

关于excel - 从 Excel 导入 Access 类型转换失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61066340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com