Я использую Excel VBA для написания макроса, который читает данные из листа Excel и обрабатывает их.По сути, я копирую данные из рабочей книги Excel A
в рабочую таблицу X
в рабочей книге Excel B
.Рабочая книга B
содержит макрос, который выполняет это копирование, а затем считывает данные в набор записей из рабочей таблицы X
.
У меня настоящая странная проблема.Моя проблема в том, что есть одно поле в наборе записей, которое отображается пустым, когда я пытаюсь напечатать значение набора записей.
Это часть моего кода, которая имеет проблему.packageName
передается в эту функцию, которая содержит строку.Объект набора записей objRecordset
неправильно выбирает поле Name
и отображается пустым, когда я пытаюсь напечатать значение набора записей для элемента, даже если оно не пустое.Остальные поля распечатаны просто отлично.Поле имени содержит буквы и цифры, такие как ABC1232WHSJ, ABCD3456
.Есть идеи, что не так?
Dim objConnect As ADODB.Connection, objRecordset
Set objConnect = New ADODB.Connection
objConnect.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;"";"
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1
Set objRecordset = CreateObject("ADODB.Recordset")
objRecordset.Open "Select * FROM [Sheet1$] WHERE Package LIKE '" & _
packageName & "'", objConnect, adOpenStatic, adLockOptimistic, adCmdText
Debug.Print objRecordset.Fields.Item("Package")
Debug.Print objRecordset.Fields.Item("Name")