2017-05-29 19 views
0

我在Access中很新鲜,我试图做一个简单的表单工作。我的表单提供了一个组合框,它正确显示了名为Courses的表中的所有名称。另一个相同形式的文本框(称为Fee)应根据组合框中选定的值在同一个表中查找值。要做到这一点,我已经使用在Fee的控件来源属性下面的SQL语句:在表单域的控件源属性中选择

=(SELECT Fee FROM Courses WHERE Courses.Course=Forms.Register.Course;) 

在窗体中,我总是得到一个#Name?错误。但是,如果我将它作为普通查询运行,则相同的指令工作正常。另请注意,表格显示了其他字段以及其他表格。窗体的记录源如下:

SELECT Register.*, Courses.Fee FROM Courses INNER JOIN Register ON Courses.Course = Register.Course; 

我想这应该是一个简单的任务,但到目前为止,我还没有能够找到一个解决方案(如果可能的话不使用VBA)。任何帮助将不胜感激,谢谢。

回答

0

不能使用SELECT语句作为控制源的计算控制,但Domain functions用于此:

=DLookup("Fee", "Courses", "Course = Forms!Register!Course") 

但你也可以添加FeeCourses组合框为第2列,其列宽度= 0,所以它是不可见的。

然后简单

=Courses.Column(1) 

.Column是从0开始)

+0

感谢了很多,很好地工作(愚蠢的我,我甚至用使用DLookup最近,但现在没有想到的吧! )。另外你的第二个选择是相当方便的 –