向表格表单添加列以显示查询的值

时间:2013-06-28 20:15:07

标签: ms-access ms-access-2010

我有表x,其中x.b是主键:

+-----+-----+
|  a  |  b  |
+-----+-----+
| xyz | 123 |
| abc | 456 |
| abc | 999 |
+-----+-----+

y,其中y.bx.b的外键:

+----+-----+-------+
| ID |  b  |   c   |
+----+-----+-------+
|  1 | 123 | x105  |
|  2 | 123 | a309  |
|  3 | 456 | b123  |
|  4 | 999 | q234  |
|  5 | 999 | z525  |
+----+-----+-------+

基于yQuery的查询y,为每个c查找最高ID的{​​{1}}值,结果为:

b

我的表格+----+-----+-------+ | ID | b | c | +----+-----+-------+ | 2 | 123 | a309 | | 3 | 456 | b123 | | 5 | 999 | z525 | +----+-----+-------+ 目前正在显示表格xForm。我想添加一个显示x c结果的列,以便yQuery看起来像这样:

xForm

我尝试将文本框添加到+----+-----+-------+ | ID | b | c | +----+-----+-------+ | 2 | 123 | a309 | | 3 | 456 | b123 | | 5 | 999 | z525 | +----+-----+-------+ ,其中文本框的控件源为:

xForm

但这只是给了我一列 #Name?错误。我不确定如何设置文本框以使其来源为=[yQuery]![c] 字段。

2 个答案:

答案 0 :(得分:1)

一种选择是将表单绑定到一个查询,该查询从[ID]上的查询[yQuery]连接的表[x]中提取信息。但是,如果[yQuery]有一个GROUP BY子句,那么包含[yQuery]的任何查询都可能产生一个不可更新的记录集。

另一种选择是使用DLookup()作为相关文本框的控件来源,例如

=DLookup("c","yQuery","ID=" & [ID])

答案 1 :(得分:1)

你可以改用这个dlookup:

= DLookup(“[c]”,“yQuery”,“[b] =”& [表格中B的控制名称])

或者

= DLookup(“[c]”,“yQuery”,“[b] =”“”& [表格中B的控制名称]&“”“”)

如果b不是数字