Ms access MS Access中的VBA中不接受变量名

Ms access MS Access中的VBA中不接受变量名,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我有一个SQL VBA查询,用于在单击按钮时更新表单上几个文本框中的值 查询从表单上的多个标签名称标题中获取输入。因此,将为TextBox1输入Label1的标题,Textbox2的Label2标题等 我试图通过变量将标签名传递给查询。但是,在生成变量b值的行上返回以下错误: Microsoft Access找不到表达式中引用的字段“&labelname&” 我的代码如下。我想使用一个变量,以便以后我可以将其作为一个函数来接受标签名称并返回记录集值。这样,我将能够避免大约150行代码,因为我必须

我有一个SQL VBA查询,用于在单击按钮时更新表单上几个文本框中的值

查询从表单上的多个标签名称标题中获取输入。因此,将为
TextBox1
输入
Label1
的标题,
Textbox2
Label2
标题等

我试图通过变量将标签名传递给查询。但是,在生成变量
b
值的行上返回以下错误:

Microsoft Access找不到表达式中引用的字段“&labelname&”

我的代码如下。我想使用一个变量,以便以后我可以将其作为一个函数来接受标签名称并返回记录集值。这样,我将能够避免大约150行代码,因为我必须使用相同数量的标签输入更新20到25个文本框

Private Sub Command111_Click()
Dim dbs As DAO.Database
Dim rs As DAO.Recordset
Dim ssql As String
Dim labelname As String
Dim b As String
Set dbs = CurrentDb

'---------------------------------------------------------------------------    ----
labelname = "Label24"
b = [Forms]![Bal_Sheet]![& labelname &].Caption
ssql = "select sum(a.[Bal Fwd]) from Trial_Balance a,Act_Master b where a.GBOBJ = b.object and a.GBSUB = b.sub and b.Cat = " & "'" & b & "'"
Debug.Print ssql
Set rs = dbs.OpenRecordset(ssql, dbOpenDynaset)
[Forms]![Bal_Sheet]![Text1].Value = rs(0)
'-------------------------------------------------------------------------------
rs.Close
Set rs = Nothing
dbs.Close
End Sub
你的表情:

b = [Forms]![Bal_Sheet]![& labelname &].Caption
不是连接字符串,因为
[Forms]
[Bal\u Sheet]
引用对象

相反,您应该使用:

b = Forms("Bal_Sheet").Controls(labelname).Caption
你的表情:

b = [Forms]![Bal_Sheet]![& labelname &].Caption
不是连接字符串,因为
[Forms]
[Bal\u Sheet]
引用对象

相反,您应该使用:

b = Forms("Bal_Sheet").Controls(labelname).Caption