2014-11-21 78 views
0

我有一個下拉組合框,我也有一個文本框,有一個宏,做一個DLOOKUP然後將結果放入空白文本框。這部分工作得體。組合框選擇後刷新計算?

令人沮喪的是它不更新結果文本框。我需要在記錄中來回看看變化。

當然,我想要的是隻要組合框被選中就運行宏,然後用新數字更新結果文本框。我確信這很容易做到,但我無法弄清楚。

謝謝!

編輯: 我把下面的代碼在我的更新事件後...

Sub updateDM() 
    KeyID = Me!DMID.Value 'vDMID.Value 
    If IsNull(KeyID) = False Then 
     AssignedPlan = DLookup("AssignedPlan", "DMPlanSum", "DMID = " & KeyID) 
     vAssignedPlan.Value = AssignedPlan 
     Me.Refresh 
    End If 

End Sub 

Private Sub vStartMonth_AfterUpdate() 
    updateDM 
End Sub 

它奇怪的是,它kindof作品,但只有當我做下拉兩次。例如,假設我在計劃A =結果100(開始選擇)。我選擇計劃B = 200,但結果框仍然有100個。我再次選擇計劃B,結果框現在更改爲200.

另一方面,如果在選擇計劃B後更改回計劃A,它仍然改爲200!

它似乎是一步之遙?

+0

您是否嘗試過使用組合框的'beforeUpdate'和'afterUpdate'事件? – Barranka 2014-11-21 21:41:32

+0

是的,我有組合框後更新腳本 - 還沒有在更新前嘗試過,但不知道爲什麼這很重要? – mythstified 2014-11-21 21:43:09

+0

你需要刷新表單的數據源嗎? – Barranka 2014-11-21 21:44:46

回答

0

從form_update中刪除該代碼並將其粘貼到combobox_before/after_update事件。

只是將值直接分配給文本框。

Private Sub ComboBox_AfterUpdate() 
    me.txt_resultBox.value = nz(DLookup("AssignedPlan", "DMPlanSum", "DMID = " & ComboBox.value),"") 
End Sub 
+0

(抱歉,延遲)似乎工作,但只有一次!如果我從組合框中選擇另一個組合框,它將不會刷新,除非我再次循環記錄 – mythstified 2014-12-03 16:16:11