在我的访问表单中,我有Text Box
应该具有此值:
SELECT [QueryOne].[Company] FROM [QueryOne] WHERE ([QueryOne].[ID] = "1000"
所以,我在这个文本框的ControlSource
写了以下字符串:
= ( SELECT [QueryOne].[Company] FROM [QueryOne] WHERE ([QueryOne].[ID] = "1000" )
但我得到的结果是textbox.value
是#Name?
。也许这个字符串不应该在ControlSource
?
答案 0 :(得分:1)
使用DLookup:
=DLookup("[Company]"), "[QueryOne]", "[ID] = '1000'")
或更可能ID
不是文本列,那么
=DLookup("[Company]"), "[QueryOne]", "[ID] = 1000")
答案 1 :(得分:1)
Access文本框不能直接用于执行SQL。但是,您可以通过将其设置为Control Source
来调用文本框中的函数并显示结果。 Access提供了许多功能,可用于从数据库中检索数据。 DlookUp
应该按照您的要求执行操作:
=DLookUp("[Company]","[QueryOne]","ID='1000'")
您可能希望能够输入公司ID以返回名称。为此,更改函数以引用表单上的另一个输入文本框(显然只需更改表单和文本框名称以匹配您的元素):
=DLookUp("[Company]","[QueryOne]","[ID]='" & [Forms]![Form1].[txtCompanyID].[Value] & "'")
当然,如果您执行的操作不仅仅是最简单的查找,那么正确的方法是为表单设置Record Source
并将文本框Control Source
设置为来自此数据集的字段。