我有两张桌子:
我有一个查询我基于包含的表单,以及其他项目:
SELECT e.Name FROM Projects p JOIN Employee e ON e.EmployeeID=p.EmployeeID
当我在Access中根据此查询创建表单时,我可以非常轻松地在表单上显示e.Name
,因为它是从查询中加入的。
我的真实例子当然比这个简单的例子复杂得多。以上工作适用于只读查询并且可以很好地扩展。但是,我想使用Splitform视图,即使是少量的记录集,这也会变得很慢。考虑到我的联接的很大一部分很简单,我希望能够尽可能多地删除。
在表单上,e.Name
将是只读的,无法更新。
在this question中,我能够成功将组合框更改为查找。接受的答案允许组合框通过在组合框中显示Projects.EmployeeID
字段来控制Employee.Name
。
我知道我可以这样做的一种方法是使用组合框但禁用它。这看起来有点奇怪,因为它有下拉选择器但不能选择。
或者,我可以使它成为一个完全未绑定的字段,并通过运行快速查询,获取我正在搜索的文本值以及相应地更新标签来编写VBA代码以在每次记录集更改时更新表单。
然而,这些都不过于吸引人。
答案 0 :(得分:1)
您可以使用Dlookup
非常简单地返回此引用
构建一个Dlookup
公式,如:
=DLookUp("Name", "Employee", "EmployeeID =" & "[EmployeeID]"
并将其用作文本框的ControlSource。
一些注意事项:
&
很重要,因为它将公式绑定到表单上显示的单个记录