Forms 在表单字段的“控制源”属性中选择

Forms 在表单字段的“控制源”属性中选择,forms,ms-access,controls,Forms,Ms Access,Controls,我对Access非常熟悉,我正在尝试让一个简单的表单工作。我的表单显示一个组合框,正确显示名为Courses的表中的所有名称。另一个名为“费用”的文本框以相同的形式根据组合框中选择的值在同一个表中查找值。为此,我在费用的控制源属性中使用了以下SQL语句: =(SELECT Fee FROM Courses WHERE Courses.Course=Forms.Register.Course;) 在表格里,我总是有名字?错误但是,如果我将同一条指令作为普通查询运行,则该指令运行良好。还请注意,该

我对Access非常熟悉,我正在尝试让一个简单的表单工作。我的表单显示一个组合框,正确显示名为Courses的表中的所有名称。另一个名为“费用”的文本框以相同的形式根据组合框中选择的值在同一个表中查找值。为此,我在费用的控制源属性中使用了以下SQL语句:

=(SELECT Fee FROM Courses WHERE Courses.Course=Forms.Register.Course;)
在表格里,我总是有名字?错误但是,如果我将同一条指令作为普通查询运行,则该指令运行良好。还请注意,该表单还显示了其他表中的其他字段。表单的记录源如下所示:

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

我想这应该是一个简单的任务,但到目前为止,如果不使用VBA,我还无法找到一个可能的解决方案。非常感谢您的帮助。

您不能将SELECT语句用作已计算控件的控件源,但用于:

=DLookup("Fee", "Courses", "Course = Forms!Register!Course")
但您也可以将费用添加为课程组合框的第二列,列宽为0,所以它是不可见的

然后简单地

=Courses.Column(1)

.Column是基于0的

非常感谢,它工作得很好。我最近甚至用过DLookup,但现在没想到它!。你的第二个选择也很方便