MS Access VBA 中不接受变量名称
Variable name not accepted in VBA in MS Access
我有一个 SQL VBA 查询,用于通过单击按钮更新表单上多个文本框中的值。
查询从表单上的多个标签名称标题中获取输入。因此 Label1
的标题将输入 TextBox1
、Label2
的标题 Textbox2
等
我正在尝试通过变量将标签名称传递给查询。但是,在生成变量 b
的值的行上 return 编辑了以下错误:
"Microsoft Access can't find the field '&labelname&'referred to in your expression.
我的代码如下。我想使用一个变量,以便稍后我可以使它成为一个函数来接受标签名称和 return 记录集值。这样我就可以避免大约。 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_Sheet]
指的是对象。
相反,您应该使用:
b = Forms("Bal_Sheet").Controls(labelname).Caption
我有一个 SQL VBA 查询,用于通过单击按钮更新表单上多个文本框中的值。
查询从表单上的多个标签名称标题中获取输入。因此 Label1
的标题将输入 TextBox1
、Label2
的标题 Textbox2
等
我正在尝试通过变量将标签名称传递给查询。但是,在生成变量 b
的值的行上 return 编辑了以下错误:
"Microsoft Access can't find the field '&labelname&'referred to in your expression.
我的代码如下。我想使用一个变量,以便稍后我可以使它成为一个函数来接受标签名称和 return 记录集值。这样我就可以避免大约。 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_Sheet]
指的是对象。
相反,您应该使用:
b = Forms("Bal_Sheet").Controls(labelname).Caption