为什么 vba ado 记录集没有从 Excel table 中获取值?

Why vba ado recordset does not get values from Excel table?

美好的一天。

我在将 excel 电子表格中的值写入 ado 记录集时遇到问题。

电子表格 "prox" 包含值列,例如:

此列为文本类型。

我使用以下代码:

objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & wd & "\" & ThisWorkbook.Name & ";" & _
        "Extended Properties=""Excel 8.0;HDR=No;"";"

objRecordset.Open "Select * FROM [prox$]", _
    objConnection, adOpenStatic, adLockOptimistic, adCmdText

然后记录集包含

但缺少文本格式的数字。在他们的地方是空白和

Debug.Print IsEmpty(objRecordset.Fields.Item(3).Value)

returns 'True' 为他们

您可能需要添加 IMEX 选项

"Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & wd & "\" & ThisWorkbook.Name & ";" & _
        "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"

有关详细信息,请参阅 this SO's post