从sheet1中提取项目并在sql查询中使用

时间:2016-08-24 18:40:06

标签: vba excel-vba excel

我正在使用Excel 2016 VBA,我正在尝试使用表1,经理将他们想要销售的部件号列表。我的VBA SQL将从工作表1中提取信息并将该部件号放入查询中运行查询并在新页面上显示结果并浏览部件编号列表,直到列表中没有任何内容。每个零件号可以有6个结果。

我正在使用此代码,如果在一个页面上进行翻转,它可以正常工作。

enter code here
ITEMNUMBERSLIST = RANGE("A2")

sql ="SELECT * FROM db WHERE iTEM IN(" & ITEMNUMBERSLIST & ") "

Set rstRecordset = New ADODB.Recordset
rstRecordset.Open _
Source:=" " & sql & " ", _
  ActiveConnection:=cnnConnect
  Range("B1").Select
For Each rstRecordsetField In rstRecordset.Fields
ActiveCell.EntireColumn.Insert
ActiveCell.Value = rstRecordsetField.Name
ActiveCell.Offset(0, 1).Select
Next rstRecordsetField
Range("B2").Select
ActiveCell.CopyFromRecordset rstRecordset
ActiveCell.Offset(1, 0).Select

Do Until ActiveCell.Row = LR

ITEMNUMBERSLIST = RANGE("A2")

sql ="SELECT * FROM db WHERE item IN(" & ITEMNUMBERSLIST & ") "

Set rstRecordset = New ADODB.Recordset

rstRecordset.Open _
Source:=" " & sql & " ", _
   ActiveConnection:=cnnConnect
   ActiveCell.CopyFromRecordset rstRecordset
ActiveCell.Offset(1, 0).Select
LR = Range("A" & Rows.Count).End(xlUp).Row + 1

Loop

1 个答案:

答案 0 :(得分:0)

您只需要明确说明您从a -> b -> b拉出哪张工作表:

RANGE("A2")

为了便于阅读,您可能还想要说明结果表:

ITEMNUMBERSLIST = ActiveWorkbook.Sheets("Sheet1").RANGE("A2")