2013-04-24 28 views
1

使用Access 2007,我創建了一個窗體(f_login)和一個查詢(c_login),並且我想從我的sql查詢中獲得結果並顯示在我的表單上,通過文本框。 這裏是我的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

測試在立即窗口中的DLookup表達式(你可以用按Ctrl + 克去那裏)。

看到您在立即窗口中輸入後得到的結果,然後按返回

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作爲控制源的那個)從前兩個更新事件中刪除。