按变量名对列表框窗体控件的VBA引用



我被VBA中引用表单上的列表框控件的语法卡住了。我正试图编写一个子例程,根据多选列表框中的选择来构建SQL字符串。目前,我有以下代码:

Private Sub lstStudies_AfterUpdate()
Call buildMultiSQL("lstStudies","field1")
End Sub
Private Sub buildMultiSQL(lstName As String, fldName As String)
Dim lstBox As Object
lstBox = Me.Controls(lstName)
…
End Sub

我得到以下错误:"运行时错误‘91’:对象块或With块变量未设置",突出显示行

lstBox = Me.Controls(lstName)

当我将代码更改为:

Private Sub buildMultiSQL(lstName As String, fldName As String)
Dim lstBox As Object
lstBox = Forms(frmMultiselect).Controls(lstName)
…
End Sub

我在同一行上得到了一个不同的运行时错误:"运行时错误'2465':[我的数据库名称]找不到表达式中引用的字段'lstStudies'。">

如何使用变量名引用作为表单控件的列表框?我已经仔细检查了列表框是否真的命名为lstStudies,并且表单上没有其他具有该名称的列表框或控件。

分配对象变量时,需要使用Set

Set lstBox = Me.Controls(lstName)

相关内容

  • 没有找到相关文章

最新更新