2010-02-23 69 views
0

我有一個下拉列表有4列,但只有3個'可見'第一個是一個ID,更新後我有以下代碼運行。我的DoCmd.SearchForRecord命令停止工作

DoCmd.SearchForRecord acDataForm, "new_order_thingy", acFirst, "[OrderID] = " & Me.Combo112.Column(0) 

這用於獲取有關將訂單記錄,我不知道我做了什麼,但我不知怎麼把它弄壞了。我沒有收到錯誤,但沒有檢索到任何數據。

當我將MsgBox取出時,它會在Me.Combo112.Column(0)中傳遞正確的值。

任何幫助/建議,將不勝感激。

謝謝

+0

你是否改變了表單的排序順序?這可以改變acFirst的行爲方式。您應該閱讀關於DoCmd.SearchForRecord的幫助文章,看看是否有任何東西會跳出來作爲可能的問題。 – 2010-02-23 23:14:41

+0

「new_order_thingy」與Combo112相同嗎?如果不是的話,那麼重點可能會有所改變。 – Fionnuala 2010-02-24 21:23:49

+0

您對另一種方法有什麼看法? – Fionnuala 2010-02-24 21:24:21

回答

0

Form.DataEntry被設置爲YES,它應該被設置爲NO ...不明白爲什麼,但那是什麼導致了我的錯誤。

+0

日期條目是一種僅加載新添加的記錄的模式,因此如果您的組合框列出了表單打開時存在的所有記錄,它將無法找到它們,因爲預先存在的記錄不是加載到DataEntry設置爲True的表單中。數據輸入模式的原因是多用戶環境下的效率。不要打開它,不要明確地要求表單打開時沒有預先存在的記錄,只有一個全新的空白記錄可供編輯。只要打開這些屬性,關閉它並不會阻止編輯或添加新記錄。 – 2010-03-06 17:11:29

0

我建議你在你的代碼中放置一個斷點。然後,更改組合中的值,並在中斷模式下,將鼠標懸停在變量上。
這也會告訴你,如果事件真的被解僱了。
有時事件和過程之間的鏈接丟失(例如,當您重命名對象時)。

+0

它被觸發,變量確實包含數據。 – pixeldev 2010-03-05 14:58:07

+0

@ Bruno43:在相同的方向:如果代碼是在一個窗體中(我想),用me.name替換「new_order_thingy」,以防萬一您重命名錶單。 – 2010-03-05 15:44:03

+0

只是把它改成了me.name,還是什麼都沒做。 – pixeldev 2010-03-05 15:56:10