通过简单的示例DLOOKUP STRING CRITERA

时间:2018-06-28 21:18:03

标签: database ms-access access-vba

在“章节”表中检索作者的姓氏时,我需要帮助。

首先,要启动此示例,您需要两个表:

tblAuthors

ID  FirstName   LastName
1   Rob         Cooper
2   Geoff       Griffith
3   Teresa      Hennig
4   Jerry       Dennison

tblChapters

ID  Author
1   Rob
2   Rob
3   Rob
4   Geoff
5   Geoff
6   Teresa
7   Jerry

在选择打开tblChapters表的同时,我单击“创建查询”按钮。

然后我添加字段ID和Author。在作者右侧,我为DLOOKUP()启动了构建器。

我的Dlookup使用字符串。

它不起作用。

你能帮我吗?

RetrieveLastName: DLookUp("[LastName]","[tblAuthors]","[FirstName]='" & [Author] & "'")

例如,当我输入它时,它会起作用:

RetrieveLastName: DLookUp("[LastName]","[tblAuthors]","[FirstName]='Teresa'")

但这不是我想要的。

谢谢!

我看过多个网站,并尝试过数字语法。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,那么您正在寻找以下数据(来自表tblChapters):

+----+--------+----------+
| id | Author | LastName |
+----+--------+----------+
|  1 | Rob    | Cooper   |
|  2 | Rob    | Cooper   |
|  3 | Rob    | Cooper   |
|  4 | Geoff  | Griffith |
|  5 | Geoff  | Griffith |
|  6 | Teresa | Hennig   |
|  7 | Jerry  | Dennison |
+----+--------+----------+

我建议不要在查询设置中使用DLookup,这只会让您头疼。

我建议您使用以下SQL:

SELECT tc.id, tc.Author, ta.LastName 
FROM tblChapters tc
INNER JOIN tblAuthors ta ON tc.Author = ta.FirstName
ORDER BY tc.ID

如果您非常愿意使用Design View在Access中设置查询,请使用以下命令:

查询设计>使用表tblChapterstblAuthors,链接到tblChapters.Atuhor = tblAuthors.FirstName

+--------+-------------+-------------+------------+
| Field: |     id      |   Author    |  Lastname  |
+--------+-------------+-------------+------------+
| Table: | tblChapters | tblChapters | tblAuthors |
+--------+-------------+-------------+------------+

侧面注释此策略仅在没有重复的名字和/或两个表之间存在冲突的情况下有效。