使用 SQL 存储过程填充 ListBox

Posted

技术标签:

【中文标题】使用 SQL 存储过程填充 ListBox【英文标题】:Fill ListBox using SQL stored procedure 【发布时间】:2014-08-25 13:04:57 【问题描述】:

我正在开发 VBA MS Access 应用程序,需要通过在 ADO 环境中执行存储过程来填充 ListBox。下面是我的代码……这段代码在主窗体加载时执行。

sql 连接一切正常,使用Debug.Print 进行调试时,我可以确认数据已成功获取。但我在最后一行遇到错误..请需要帮助。下面是我填充列表框的代码......

Dim rs As ADODB.Recordset

Set AdoCn = New ADODB.Connection

Set AdoCmd = New ADODB.Command

AdoCn.Open AdoConnectionString

AdoCmd.ActiveConnection = AdoConnectionString

Set rs = New ADODB.Recordset

AdoCmd.CommandType = adCmdStoredProc
    AdoCmd.CommandText = "TestListReview"
     Set rs = AdoCmd.Execute

     rs.CursorLocation = adUseClient
    rs.Open cmd, , adOpenForwardOnly, adLockOptimistic, dbSeeChanges
   Set Me.lstReview.RowSourceType = "Table/Query"

    Set Me.mylstbox.Recordset = rs

Set rs = Nothing
Set cn = Nothing

【问题讨论】:

显示错误信息 您遇到了哪个错误? 我猜你需要用Set AdoCn = Nothing替换Set cn = Nothing @Horaciux 它的运行时间错误 3705:对象打开时不允许操作。 @DeepSharma 哥们,我在上面提到过.. 【参考方案1】:

您尚未创建名为 cn 的连接。您创建的连接称为 AdoCN。您正在尝试关闭一个不存在的对象。按照 Horaciux 的建议,将最后一行更改为 Set AdoCn = nothing。

【讨论】:

以上是关于使用 SQL 存储过程填充 ListBox的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 存储过程填充事实表

SQL Server 中的存储过程未使用 VB.Net 编码填充 ASP.Net 下拉列表

在存储过程中将输入参数作为值传递

T-SQL 获取存储过程的 SELECTed 值

使用存储过程中的表名填充数据集

从 oracle PL/SQL 查看变量的值