在Excel工作表中只显示一个select查询

我在Excel 2007中调用了一个存储过程(SQL Server 2005)。这个SP有两个select语句,但是在excel工作表中,第一个语句的结果正在显示。 有什么想法吗?

如果您的存储过程有两个select语句,您将有两个logging集返回。 确保你正在写两个工作表。 您还应该validation这两个select语句是否返回行。

注意:如果您想使用VBA来尝试此操作,“ 专业Excel开发 ”一书的第19章将致力于与SQL Server进行交互。 本章将引导您连接到数据库,执行存储过程并将结果写回工作簿。 提供所有你需要的代码,以及它所做的很好的解释。 如果你是VBA的新手,这本书就是你应该select的短名单。 查看好书,为其他人学习Excel VBA 。

下面是从存储过程返回5个logging集的子部分的一个例子:

If Not rsData.EOF Then ' The first recordset contains prices Sheet39.Range("a1").CopyFromRecordset rsData Set rsData = rsData.NextRecordset ' The second recordset contains products Sheet39.Range("a20").CopyFromRecordset rsData Set rsData = rsData.NextRecordset ' The third recordset contains stores Sheet39.Range("a35").CopyFromRecordset rsData Set rsData = rsData.NextRecordset ' The fourth recordset contains payment types Sheet39.Range("j1").CopyFromRecordset rsData Set rsData = rsData.NextRecordset ' The fifth recordset contains customers Sheet39.Range("j8").CopyFromRecordset rsData Set rsData = rsData.NextRecordset Else MsgBox "No data located.", vbCritical, "Error!" End If 

我用VBA来填充结果集的表单,这解决了这个问题。 我还必须编写遍历所有结果集的代码。