hel*_*988 9 forms ms-access vba
我目前想从表单中获取一个值,以便在我使用VBA在Access下的模块中进行的SQL查询中设置它.我试着用
value = Forms![NameOfForm]![NameOfTextbox]
sqlquery = "...." & value & "....."
Run Code Online (Sandbox Code Playgroud)
它出错(2450)说它找不到指定的表格.如何获取此文本框的值,以便在模块中使用它?
谢谢
修改您的VBA代码以确保表单已打开.
DoCmd.OpenForm "NameOfForm"
Run Code Online (Sandbox Code Playgroud)
这应该可以防止错误#2450.
之后,您不需要将[NameOfTextbox]的值存储到变量中,然后使用该变量来构建SQL语句.您可以直接使用其值.
sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = '" & Forms![NameOfForm]![NameOfTextbox] & "';"
Run Code Online (Sandbox Code Playgroud)
或者在查询中嵌入对文本框本身的引用(而不是文本框的值).
sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = Forms![NameOfForm]![NameOfTextbox];"
Run Code Online (Sandbox Code Playgroud)
我假设some_field是一个文本数据类型字段,因此在第一个查询示例中用单引号括起文本框值.请注意,第二个示例不需要引号,因为它按名称而不是其值引用文本框.
但是,如果继续使用原始方法(将文本框值存储到变量中),请不要将变量命名为"值",因为值可能与许多对象的属性混淆.