为什么VBA ADO记录集无法从Excel表中获取值?

时间:2018-10-18 04:01:04

标签: excel vba excel-vba recordset

美好的一天。

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

电子表格“代理”包含一列值,例如:

  • 958371030M
  • 1200118
  • 982140615D
  • 1502680
  • KB7W-62864

此列为文本类型。

我使用以下代码:

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

然后记录集包含

  • 958371030M
  • 982140615D
  • KB7W-62864

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

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

为他们返回“ True”。

1 个答案:

答案 0 :(得分:0)

您可能需要添加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