如何从我的文本框中获取sql查询的结果?

时间:2013-04-24 12:28:50

标签: ms-access textbox ms-access-2007

使用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])

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

1 个答案:

答案 0 :(得分:1)

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

在立即窗口中键入此内容并按返回后,查看您获得的内容。

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作为其控制源的文本框)。