【发布时间】:2012-06-30 06:10:59
【问题描述】:
我有一个表格,其中包含我试图导入到 vba/excel 中用户窗体上的电子表格控件中的数据。
结果将由最终用户查看,因此我在初始化时设置了标题单元格的值,而不是 sql 表中的列标题。
我的查询看起来像这样
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sConnString As String
sConnString = "Provider=SQLOLEDB;Data Source=mysource;Initial Catalog=mydatabase;User Id=myusername;Password=mypassword;QuotedID=No"
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.Open sConnString
Set rs = conn.Execute("SELECT * FROM WOFT_tbl_clients WHERE userid = '" & UserId.Value & "';")
If Not rs.EOF Then
/////////////////
/something here!/
/////////////////
Else
MsgBox "Error: No records returned.", vbCritical
End If
If CBool(conn.State And adStateOpen) Then conn.Close
Set conn = Nothing
Set rs = Nothing
我要做的是从数据库中获取选定列的输出,并能够将它们输入到电子表格控件上我喜欢的任何列中。
所以实际上我想要一个循环,允许我从第 2 行开始将列 id、name 和 userid 的结果集输出到电子表格控件中。我的数据库还包含此电子表格中不需要的许多其他列,但同一用户窗体上的另一个电子表格控件将需要这些控件,其中一些将同时出现在两者上。
我希望能够将每一列都放在自己的记录集中,这样我就可以将类似 id 的内容存储在 id 记录集中,然后我可以在电子表格控件 1 的 A 列和第 6 列中使用它电子表格控件 2?
我希望这是有道理的!我正在使用 Excel 2010
【问题讨论】:
-
使用每个电子表格所需的确切列进行两次查询可能会简单得多。然后,您可以使用 CopyFromRecordSet 将结果放入工作表中。您真的不希望每列都有单独的记录集。