1

使用 Access 2007,我创建了一个表单 (f_login) 和一个查询 (c_login),我想从我的 sql 查询中获取结果并通过文本框显示在我的表单上。这是我的 sql 查询(工作):

SELECT t_lvl.nr_lvl
FROM t_admin INNER JOIN t_lvl ON t_admin.nr_rf = t_lvl.nr_rf
WHERE (((t_admin.nr_rf)=[Forms]![f_login]![txb_user].[VALUE]) AND ((t_admin.psw)=[Forms]![f_login]![txb_psw].[VALUE]));

我试图将这些代码放在我的文本框的控制源上,但它们都不起作用......

=DLookup("[nr_lvl]","[c_login]")
=DLookup("nr_lvl","c_login")
=DLookup("c_login","nr_lvl")
=DLookUp("[c_login]";"[nr_lvl] =" & [Forms]![f_login]![txb_lvl])

我真的不知道为什么它不起作用!

4

1 回答 1

1

DLookup在立即窗口中测试您的表达式(您可以使用Ctrl+去那里g)。

在“立即”窗口中键入此内容并按 后,查看您得到的结果Return

Debug.Print TypeName(DLookup("nr_lvl","c_login")), DLookup("nr_lvl","c_login")

您告诉我们c_login是一个查询,向我们展示了该查询的 SQL,并确认该查询返回了正确的结果。由于nr_lvl是从该查询返回的字段,我不明白为什么在表单视图中打开表单DLookup时会失败。f_login

因此,请查看DLookup“立即”窗口中的情况……它是否返回无值、错误值或错误消息。然后你需要弄清楚如何改变它以获得正确的结果。

OTOH,如果DLookup在立即窗口中为您提供正确的结果,并且表单的问题是文本框值不会响应更改而更新txb_user和/或txb_psw您应该重新查询第三个文本框(DLookup用作它的控制源)来自前两个的更新后事件。

于 2013-04-24T14:38:34.510 回答