【问题标题】:Get a text value from a form in Access using a VBA module使用 VBA 模块从 Access 中的表单中获取文本值
【发布时间】:2012-03-12 02:41:35
【问题描述】:

我目前想从表单中获取一个值,以便在我使用 VBA 在 Access 下的模块中进行的 SQL 查询中设置它。我尝试使用

value = Forms![NameOfForm]![NameOfTextbox] 

sqlquery = "...." & value & "....."

它出错 (2450) 说它找不到指定的表单。如何获取此文本框的值以便在我的模块中使用它?

谢谢

【问题讨论】:

  • 尝试这个时表单是否打开?

标签: forms ms-access vba


【解决方案1】:

修改您的 VBA 代码以确保表单处于打开状态。

DoCmd.OpenForm "NameOfForm"

这应该可以防止错误 #2450。

之后,您无需将 [NameOfTextbox] 的值存储到变量中,然后使用该变量来构建您的 SQL 语句。你可以直接使用它的值。

sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = '" & Forms![NameOfForm]![NameOfTextbox] & "';"

或者在查询中嵌入对文本框本身的引用(而不是文本框的值)。

sqlquery = "SELECT * FROM YourTable " & _
"WHERE some_field = Forms![NameOfForm]![NameOfTextbox];"

我假设 some_field 是一个文本数据类型字段,所以在第一个查询示例中用单引号将文本框值括起来。请注意,第二个示例不需要引号,因为它通过名称而不是值来引用文本框。

但是,如果您继续使用原始方法(将文本框值存储到变量中),请不要将变量命名为“值”,因为值可能会与许多对象的属性混淆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    相关资源
    最近更新 更多