【发布时间】:2016-11-26 11:33:01
【问题描述】:
我是 VBA 的新手,所以请不要介意问题是低级别的。我正在尝试运行 SQL 查询,其中必须从同一工作簿的一张表中提取数据。
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。 9 代表 Amul,5 代表雀巢,以此类推。
关系:
我不知道该怎么做。这些数字按顺序对应于它们各自的产品公司。
【问题讨论】:
-
将查询结果存储到数组中,遍历数组,然后根据数组中的数据运行JOIN语句。
-
嗨,Doug Coats :) 我的查询没有得到结果。我不知道我的代码有什么问题。你能检查我的代码并告诉我有什么问题吗?下一步将结果集存储在数组中并循环遍历逻辑,你能帮忙看看代码吗?我不是很清楚。我明白了逻辑,但在 vba 中做,因为在工作表之间翻转让我感到困惑。
-
工作表名称是Data还是sData?
-
工作表名称是数据,在vba而不是Sheet1中,我使用vba属性将其更改为sData。
-
我认为这是你的问题 :)