第一次使用MS Access并遇到一些问题,如果有人可以请我指出正确的方向。
所以我正在做一个模拟数据库(所以看起来很傻)只是为了了解这些细节并且需要一些DLookUp的帮助。
我的数据库有两个表,包含以下字段:
C_ID
课程中的PK和学生中的FK
tblCourse: C_ID, Title, Subject
tblStudent: S_ID, C_ID, Name, EnrollDATE
正如我所说,这只是为了测试/学习。所以我想要的是有一个过滤器,根据C_ID
EnrollDates
NULL
为我提供Expr1: DLookUp("[tblStudent]![C_ID]","tblStudent","isNull([tblStudent]![EnrollDATE])")
的列表。
所以过滤器是:
[tblStudent]![EnrollDATE] = Null
我也尝试过标准
{{1}}
目前我只返回空白字段。非常感谢任何帮助,请让我详细说明我的解释是否已解决。
谢谢!
答案 0 :(得分:1)
正确的语法如下所示:
DLookup("C_ID", "tblStudent", "EnrollDate is null")
Null
或xxx is null
xxx is not null
醇>
请注意,DLookup
仅返回一个值(如果条件匹配多行,则该值来自任意行),因此您无法使用它来获取C_ID
的回复列表。
修改强>
你真正想要做的是从一个表中选择数据,并根据另一个表中的数据进行过滤,这是正确的吗?
比如,选择至少有一名学生空EnrollDATE
的所有课程?
如果是,您根本不需要DLookup
,有两种不同的方法:
1)使用子选择:
select *
from tblCourse
where C_ID in
(
select C_ID
from tblStudents
where EnrollDATE is null
)
2)加入表格:
select tblCourse.*
from tblCourse
inner join tblStudent on tblCourse.C_ID = tblStudent.C_ID
where tblStudent.EnrollDATE is null
这是SQL,因此您需要在Access中查询switch to SQL View。