Я новичок в VBA, поэтому, пожалуйста, не возражайте, если вопрос имеет низкий уровень. Я пытаюсь запустить SQL-запрос, где данные должны извлекаться из одного из листов одной и той же книги.VBA ADODB- Выберите запрос, используя лист Excel той же книги, что и база данных
SQL = "Select ProductNumber from [sData$] where ProductSource = " & pSource & "
'pSource is a string that stores Product Source
'sdata is a sheet named as Data in the workbook
dataPath = ThisWorkbook.Fullname
'Not sure if this is the value I shall send as datapath in getData function
Set rst = getData(dataPath,SQL)
rst.Open
Функция GetData является определение, как показано ниже
Public funtion getData(path as String, SQL as string) as ADODB.Recordset
Dim rs as ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open ("Provider= Microsoft.Jet.OLEDB.4.0;" & _
"DataSource= " & path & ";"&_
"Extended Properties=""Excel 8.0;HDR=Yes;FMT=Delimited;IMEX=1;""")
rs.ActiveConnection =cn
rs.Source= SQL
Set getData =rs
End Function
Теперь после того, как я получаю цифры от листа данных, мне нужно найти соответствующий ProductCompany из Relation листа. 9 для Амула, 5 для Нестле и т. Д.
отношений:
Я не уверен, как это сделать. Номера соответствуют их соответствующей Продуктовой компании в порядке.
Сохранять результаты запроса в массив, циклический массив, а затем запускать операторы JOIN на основе данных в массиве. –
Hi Doug Coats :) Мой запрос не получает результатов. Я не знаю, что не так в моем коде. Можете ли вы проверить свой код и сообщить мне, что не так? Далее Сохраняя набор результатов в массиве и циклически используя логику, вы можете помочь с кодом? Я не совсем понимаю это. Я получаю логику, но делаю это в vba, поскольку перелистывание между листами - это то, что меня пугает. – Naina
- это имя листа data или sData? –