2014-11-21 88 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